zoukankan      html  css  js  c++  java
  • DataList小结

    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, "市值", "{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;

                    }

                }

  • 相关阅读:
    微信定制开发怎么做?
    bzoj4069【APIO2015】巴厘岛的雕塑
    bzoj3174【TJOI2013】解救小矮人
    bzoj3531【SDOI2014】旅行
    单例模式
    JDK自带的定时任务
    centos6下手工编译vitess
    Rocchio算法
    Excel如何查找名字重复的数据
    MyEclipse8.5快速搭建SSH框架
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/842322.html
Copyright © 2011-2022 走看看