zoukankan      html  css  js  c++  java
  • 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;

                    }

                }


  • 相关阅读:
    EntityFramework优缺点
    领导者与管理者的区别
    七个对我最好的职业建议(精简版)
    The best career advice I’ve received
    Difference between Stored Procedure and Function in SQL Server
    2015年上半年一次通过 信息系统项目管理师
    Difference between WCF and Web API and WCF REST and Web Service
    What’s the difference between data mining and data warehousing?
    What is the difference between a Clustered and Non Clustered Index?
    用new创建函数的过程发生了什么
  • 原文地址:https://www.cnblogs.com/ltp/p/289627.html
Copyright © 2011-2022 走看看