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>";
        }

    }


  • 相关阅读:
    7.25
    7.24
    7.23
    7.22
    输入语句/条件运算符
    flowLayoutPanel1设置内容随着鼠标滚动而滚动
    dataGridView读取xml文件
    读文本内容 写入文本内容 创建复制文本
    cmd.ExecuteScalar 和配置连接设置
    $.ajax async同步加载
  • 原文地址:https://www.cnblogs.com/ghx88/p/350979.html
Copyright © 2011-2022 走看看