日期:2014-05-18 浏览次数:20488 次
设计模版: 
页眉<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]; 
                    删除操作 
                }