• 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;    } 
        }
    
  • 相关阅读:
    201871010102常龙龙《面向对象程序设计(java)》第四周学习总结
    《2019面向对象程序设计(java)课程学习进度条》
    201871010102常龙龙《面向对象程序设计(java)》第十二周学习总结
    201871010102常龙龙《面向对象程序设计(java)》第十三周学习总结
    201871010102常龙龙《面向对象程序设计(java)》第八周学习总结
    201871010102常龙龙《面向对象程序设计(java)》第十一周学习总结
    201871010102常龙龙《面向对象程序设计(java)》第二周学习总结
    201871010102常龙龙《面向对象程序设计(java)》第十周学习总结
    201871010102《面向对象程序设计(java)》第67周学习总结
    机器学习基石笔记2——在何时可以使用机器学习(2)
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/1818680.html
Copyright © 2020-2023  润新知