• DataList小结_zj


    设计模版

    页眉<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, "市值", "{0:n}") %></td>

             <td><%# DataBinder.Eval(Container.DataItem, "净值", "{0:n}") %></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;

                    }

                }


  • 相关阅读:
    基于 mysql 异步驱动的非阻塞 Mybatis【待验证】
    Hive SQL优化方式及使用技巧
    使用Guava-RateLimiter限流控制qps
    hive 时间戳函数之unix_timestamp,from_unixtime
    Hive实现自增列的两种方法
    shell 下 urlencode/urldecode 编码/解码的方法
    awk使用shell变量,shell获取awk中的变量值
    shell脚本删除远程过期文件
    linux下多进程同时操作文件
    hive学习----Hive表的创建
  • 原文地址:https://www.cnblogs.com/ltp/p/289627.html
Copyright © 2020-2023  润新知