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

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=108257

  • 相关阅读:
    Java正則表達式入门
    Effect of Switchovers, Failovers, and Control File Creation on Backups
    Android 屏幕截图(底层实现方式)
    Java实现奇偶数排序
    Java实现奇偶数排序
    Java实现奇偶数排序
    Java实现找零问题
    Java实现找零问题
    Java实现找零问题
    Java实现找零问题
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979168.html
Copyright © 2020-2023  润新知