天天看点

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