您所在的位置: 程序员家园 -> 家园博客 ->
 
在哪里摔倒
就在哪里自己爬起来

用户登录

查  找

最新评论

最新留言

常用网站

网易邮箱 GMAIL  

百度搜索 MSDN

霏凡软件 BT精品

影视帝国 射 手 网

电驴下载 全 库 网

友情连接

茄菲的窝 冰冰博客

枫叶飘零 玫  瑰

ACEN 云 豹 子

统  计



Dict.CN 在线词典, 英语学习, 在线翻译
[XSL学习]学习书上的第六章,一个给页面“换脸”的功能
狼子 发表于 2008-9-16 17:03:00 阅读全文 | 回复(0) | 引用通告 | 编辑

《精通ASP.NET 2.0+XML+CSS网络开发混合编程》第六章看完了,看完了就失望了,我还是没有找到答案,整整60页的内容,写的都不是我想要的东西

他说的“换脸”功能,只是根据一个DropDownList控件的选择,给页面更换css文件,而且,我不赞成他这样子换法,不是不赞成这种操作,是不赞成这种代码方式

最明显的一个就是,他在换脸后,生成的html代码流的第一句,就是定义样式的语句:<link rel="stylesheet" type="text/css" href="/css/css.css" />,在这个语句之后,才是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

这种html代码流,我是绝对不喜欢的,我开始不喜欢这个作者了,最少,他的代码里,有很多不规范的问题,甚至,他的书名写着2.0,使用的好多方法却是1.1中的方法,已过期的警告很多,我不明白这个作者为什么要写这本书,如果自己对一些问题都不可以完全搞懂,那就没有权利写一本书出来教别人东西,看书的人需要的是正确的知识,如果有人接触的第一本asp.net2.0的书就是这一本,那他肯定会吃好大亏的,最少,在他以后的编程过程里,他就没有在一开始就知道“规范性”这个概念

就是,这个第六章,不是全部不好,他用了一个xml文件管理样式名,他可以从这个xml文件中根据DropDownList的不同选项选择不同的样式,多了这个xml文件,就可以像动网的皮肤管理一样,只要添加一个css文件,再在xml文件添加这个css文件的节点,就可以从页面中读取这种样式了

就是,作者没有把这个xml文件用好,他的DropDownList文件的Items是写死了的,三个style,不多不少,如果要更改,就要修改aspx页面,感觉他把xml文件加进来,像是在表演。。。

我给出两种没有使用xml灵活处理,就是也可以完成这个第六章的“换脸”功能的方法:
1、直接给页面添加样式:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        switch (DropDownList1.SelectedValue)
        {
            case "Style1":
                SetCss("css/css.css");
                break;
            case "Style2":
                SetCss("css/css2.css");
                break;
            case "Style3":
                SetCss("css/css3.css");
                break;
        }
    }
    private void SetCss(string cssName)
    {
        Literal lt = new Literal();
        lt.Text = "<link rel=\"stylesheet\" type=\"text/css\" href=\"" + cssName + "\" />";
        this.Page.Header.Controls.Add(lt);
    }

2、把样式做成主题,修改页面的主题

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Page.Theme = DropDownList1.SelectedValue;
    }

两种方法,对asp.net2.0来说,肯定是使用第二种更好的,2.0新加的主题功能,为什么不使用呢?

嗯,上面的方法,当然也是要像第六章里的一样子,要把选项使用ViewState记录的,或者,更灵活的,记录在cookie中,记录在Users表的字段中,用于保存用户的设置,就是,这个不是我现在关心的问题

我现在在想的是,我可以使用XSL文件写这个第六章中GridView里的内容吗?如果可以,我可以在DropDownList的不同选项中,更换这个XSL文件吗?如果可以,我是不是真的做到“变脸”了?

就是,如果我把模版列里的内容写在XSL文件中,怎么把这些数据绑定到GridView呢?

发表评论:

    昵称:
    密码:
    主页:
    标题:
Powered by Oblog.