zoukankan      html  css  js  c++  java
  • 不带数据绑定表达式的数据绑定

            为什么要避免使用数据表达式呢?使用数据表达式并不会出错,而且只你想用就可以一直使用数据绑定表达式,但是,你会发现当需要在模板内执行复杂的操作时,不使用数据绑定表达式能提高代码的可读性。
            不使用数据表达式的窍门是处理控件的ItemDataBound事件(Repeater、DataGrid、DataList都有ItemDataBound事件)。ItemDataBound事件为从数据源检索出的每一个项所触发。因此,如果绑定Repeater控件到包含11个作者的数据库表,那么ItemDataBound事件就被触发11次——每个作者触发一次。
            除了ItemDataBound外,Repeater控件也支持ItemCreated事件。ItemCreate事件是创建每个RepeaterItem时触发。DataGrid与DataList也有ItemCreate事件。

    例子:
    页面代码:
    ……
    ……
    <asp:repeater id="Repeater2" runat="server">
          
    <ItemTemplate>
            
    <asp:Label ID="lblItem" runat="server" />
          
    </ItemTemplate>
    </asp:repeater>
    ……
    ……
    后台代码:
    private void Page_Load(object sender, System.EventArgs e)
    {
            SqlConnection conn 
    =new SqlConnection("server=(local);database=JgyeyMIB;pwd=;uid=sa");
            SqlCommand cmd 
    = new SqlCommand("Select * from ClassTB select * from ClassTB",conn);
            conn.Open();
            SqlDataReader rd 
    = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        
    this.Repeater2.DataSource = rd;
        
    this.Repeater2.DataBind();
        rd.Close();
    }


    private void Repeater2_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
    {
        
    if(e.Item.ItemType == ListItemType.Item)
        
    {
            Label lbl 
    = new Label();
            lbl 
    = e.Item.FindControl("lblItem"as Label;
            lbl.Text 
    = DataBinder.Eval(e.Item.DataItem,"className","{0}")+"<br>";
        }

    }


  • 相关阅读:
    对后端返回的图片添加点击事件
    Unity3D 优化NGUI纹理
    Unity 给Mono脚本添加Try Catch工具
    Unity3D Shader 高斯模糊
    Unity3D Shader 空气扭动效果
    Unity3D Shader 马赛克后期效果
    Unity3D Shader 半兰伯特光照模型
    Unity3D Shader水波效果
    Unity3D Shader 模型流光效果
    Unity3D Shader 按百分比裁剪模型
  • 原文地址:https://www.cnblogs.com/ghx88/p/350979.html
Copyright © 2011-2022 走看看