zoukankan      html  css  js  c++  java
  • 转:GridView 模板列中的数据绑定

    <asp:TemplateField HeaderText="姓名">

    <ItemTemplate>     

    <%# Eval("FirstName") %>
    <%# Eval("LastName") %>      
    </ItemTemplate>
    <asp:TemplateField>

    <%# DataBinder.Eval(Container.DataItem,"数据库字段")%>

    <%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
    <%# DataBinder.Eval(Container.DataItem, "ColumnName", null) %>
    <%# DataBinder.Eval(Container, "DataItem.ColumnName", null) %>

    其他用法
    <%# ((DataRowView)Container.DataItem)["ColumnName"] %>
    <%# ((DataRowView)Container.DataItem).Row["ColumnName"] %>
    <%# ((DataRowView)Container.DataItem)["adtitle"] %>
    <%# ((DataRowView)Container.DataItem)[n] %>
    <%# ((DbDataRecord)Container.DataItem)[0] %>
    <%# (((自定义类型)Container.DataItem)).属性.ToString() %>//如果属性为字符串类型就不用ToString()了


    说明:FirstName   ,LastName皆为数据库字段。这里直接绑定没有对结果做任何格式处理和运算。同时你也可以看到,可以直接在模板里布置多个绑定。

    方法二:对运算结果进行运算

    <asp:TemplateField HeaderText="打折">
                                <ItemTemplate>
                                    <%# DataBinder.Eval(Container.DataItem, "Discount").ToString() == "0" ? "不打" : DataBinder.Eval(Container.DataItem, "Discount").ToString()%>折
                                </ItemTemplate>
                            </asp:TemplateField>

    说明:运用三元运算符,对结果进行判断。这种方法适合那些非True即False的情况。

    方法三:对结果进行格式化处理

    <%# DataBinder.Eval(Container.DataItem, "Discount_beginDate", "{0:yyyy-m-d}").ToString() == "1900-0-1" ? "无" : DataBinder.Eval(Container.DataItem, "Discount_beginDate", "{0:yyyy-m-d}").ToString()%>

    说明:可以看到这里查询日期进行了格式化,然后进行了运算。

    方法四:绑定后台方法

    <asp:TemplateField HeaderText="流行程度">
                                <ItemTemplate>
                                    <%# GetStatusPicture(Container.DataItem) %>                               
                                </ItemTemplate>
                            </asp:TemplateField>

    后台方法:

    protected string GetStatusPicture(object dataItem)
        {
            int units = Int32.Parse(DataBinder.Eval(dataItem, "PopularLevel").ToString());
            string strNum = "";
            switch (units)
            {
                case 0:
                    strNum = "0 颗星";
                    break;
                case 1:
                    strNum = "1 颗星";
                    break;
                case 2:
                    strNum = "2 颗星";
                    break;
                case 3:
                    strNum = "3 颗星";
                    break;
                case 4:
                    strNum = "4 颗星";
                    break;
                case 5:
                    strNum = "5 颗星";
                    break;
            }
            return strNum;
        }

    说明:后台方法必须为Public或Proteced,接受的参数最好为Object类型,然后再方法内进行转换。

    来自: http://hi.baidu.com/sygwin/blog/item/aa9f5d0fe6178a276159f3ab.html

  • 相关阅读:
    第二周读书笔记——《人月神话》
    第一次读书笔记——《编程匠艺》
    自我介绍 and 阅读感想
    2017-2018-1 20155217 《信息安全系统设计基础》第八周学习总结
    2017-2018-1 20155217 20155236实验二 固件程序设计
    2017-2018-1 20155217 《信息安全系统设计基础》第七周学习总结
    20155217 20155236 20155324 《信息安全系统设计基础》实验一 开发环境的熟悉
    2017-2018-1 20155217 《信息安全系统设计基础》第五周学习总结
    2017-2018-1 20155217 《信息安全系统设计基础》第四周学习总结
    2017-2018-1 20155217 《信息安全系统设计基础》第三周学习总结
  • 原文地址:https://www.cnblogs.com/lidonghao/p/3017536.html
Copyright © 2011-2022 走看看