• DataList小结(转载)


    设计模版:
    页眉<HeaderTemplate>
    </HeaderTemplate>
    页脚<FooterTemplate>
    </FooterTemplate>
    数据记录<ItemTemplate>
    </ItemTemplate>
    <AlternatingItemTemplate>
    交替显示项
    </AlternatingItemTemplate>
    <SelectedItemTemplate>
    选中时的显示方式
    </SelectedItemTemplate>
    <EditItemTemplate>
    编辑时的显示方式
    </EditItemTemplate>
    <SeparatorTemplate>
    数据记录分隔符
    </SeparatorTemplate>
    编辑模版,里面可以嵌入控件,绑定数据。
    <ItemTemplate>
    <table>
    <tr>
    <td><%# DataBinder.Eval(Container.DataItem, "
    持股名称") %></td>
    <td><%# DataBinder.Eval(Container.DataItem, "
    市值", "") %></td>
    <td><%# DataBinder.Eval(Container.DataItem, "
    净值", "") %></td>
    </tr>
    </table>
    </ItemTemplate>
    设置外观
    RepeatLayout
    属性设置显示方式
    RepeatDirection
    显示方向
    RepeatColumns
    列数
    事件
    加入模版列的按钮会将其click事件反升到 ItemCommand 事件,也可设置 CommandName
    来响应不同的事件,如设为:edit,即引发EditCommand()等。
    注:若设为:select 则会引发SelectedIndexChanged ItemCommand事件
    SelectedItemTemplate
    模版; 添加详细信息的控件,当用户选择了该项,选择模版则显示。
    private void DataList1_ItemCommand(……)
    {
    switch(e.CommandName)
    {
    case "select":
    this.DataList1.SelectedIndex=e.Item.ItemIndex;
    string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex];
    //
    在此获得该条记录的详细数据,在SelectedItemTemplate模版里显示。
    break;
    case "unselect":
    this.DataList1.SelectedIndex=-1;
    break;
    }
    this.DataList1.DataBind();//
    一定要
    }
    EditItemTemplate
    模版
    编辑:
    this.DataList1.EditItemIndex=e.Item.ItemIndex;
    this.DataList1.DataBind();
    更新:
    得到主键
    string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex];
    得到模版里的控件
    TextBox box=(TextBox)e.Item.FindControl("TextBox1");
    更新记录
    this.DataList1.DataBind();
    取消:
    this.DataList1.EditItemIndex=-1;
    this.DataList1.DataBind();
    删除项
    一次勾选多条记录,一次删除
    foreach(DataListItem i in this.DataList1.Items)
    {
    bool IsChecked=((CheckBox)i.FindControl("deletectr")).Checked;
    if(IsChecked)
    {
    string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex];
    删除操作
    }
    }
    运行中自定义DataList控件
    //
    当创建DataList控件中的任意项时

    private void DataList1_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    switch(e.Item.ItemType)
    {
    case ListItemType.Header:
    e.Item.ForeColor=Color.Red;
    e.Item.BackColor=Color.Black;
    break;
    case ListItemType.Item:
    e.Item.BackColor=Color.Black;
    break;
    }
    }
    //
    当模版中的项被数据绑定时发生,数据被显示到客户端前加以访问的最后机会
    private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    if((e.Item.ItemType==ListItemType.Header)
    (e.Item.ItemType==ListItemType.Item))
    {
    System.Data.Common.DbDataRecord drv=
    (System.Data.Common.DbDataRecord)e.Item.DataItem;
    if((decimal)drv["
    库存量"]<1000)
    {
    e.Item.ForeColor=Color.Red;
    }
    }
    }
    另种方式
    if((e.Item.ItemType==ListItemType.Header)
    (e.Item.ItemType==ListItemType.Item))
    {
    DataRowView drv=(DataRowView)e.Item.DataItem;
    string department=(string)drv["
    部门"];
    switch(department)
    {
    case "
    销售部":
    e.Item.BackColor=Color.Black;
    break;
    case "
    技术部":
    e.Item.BackColor=Color.Red;
    break;
    }
    }

  • 相关阅读:
    JS client(X,Y)、screen(X,Y)、page(X,Y)的区别
    jS冒泡优化
    CSS盒子模型
    CSS段落对齐方式
    CSS引入方式
    CSS/让一个盒子消失的5中方法
    css垂直居中方法
    【数论】BSGS
    【线段树】树套树 树状数组套主席树
    【树】动态树 LCT
  • 原文地址:https://www.cnblogs.com/jenry/p/428095.html
Copyright © 2020-2023  润新知