日期:2014-05-19  浏览次数:20409 次

ASP.NET中DataList数据绑定与事件
我在页面上定义了DataList和Button并给DataList绑定了数据代码如下
<asp:DataList   ID= "DataList1 "   runat= "server "   Width= "546px "   >
      <HeaderTemplate>                        
            <tr   align= "left "   style= "width:   546px; "> <td   style= "width:   50px; "> 课号 </td> <td   style= "width:   354px; "> 课名 </td> <td   style= "width:   50px; "> 基础度 </td> <td   style= "width:   50px; "> 实践度 </td> <td   style= "width:   40px; "> 选择 </td> </tr>
                </HeaderTemplate>
                <ItemTemplate>            
                        <tr   align= "left "   style= "width:   546px; "   > <td> <%#   DataBinder.Eval(Container.DataItem,   "CourseID ")%> </td> <td>   <a   href= " <%#   DataBinder.Eval(Container.DataItem,   "CourseUrl ")%> ">   <%#   DataBinder.Eval(Container.DataItem,   "CourseName ")%> </a> </td> <td> <%#   DataBinder.Eval(Container.DataItem,   "m_Theory ")%> </td> <td> <%#   DataBinder.Eval(Container.DataItem,   "m_Practise ")%> </td> <td   > <asp:CheckBox   ID= "SelectCourse "   runat= "server "     /> </td> </tr>
                </ItemTemplate>
                        <EditItemStyle   BorderStyle= "Dotted "   />
                        <AlternatingItemStyle   BorderStyle= "Dotted "   />
                </asp:DataList>
<asp:Button   ID= "Button1 "   runat= "server "   Text= "提交 "   OnClick= "Button1_Click "   />
在ItemTemplate里定义了CheckBox,现我要通过CheckBox的状态提取每一个ItemTemplate数据,如ourseID等,该如何做??
protected   void   Button1_Click(object   sender,   EventArgs   e)
{
        //没有SelectCourse这个变量
        。。。。。。。。          
}


------解决方案--------------------
protected void Button1_Click(object sender, EventArgs e)
{
在这里用e.items......,具体是什么,我也忘了,在IDE里看看,或查文档。
}

------解决方案--------------------
string struid = ((TextBox)(e.Item.Cells[1].Controls[0])).Text;

自己改下
------解决方案--------------------
protected void Button1_Click(object sender, EventArgs e)
{
foreach (DataListItem item in DataList1.Items)
{
CheckBox checkbox_temp =(CheckBox) item.FindControl( "SelectCourse ");
if (checkbox_temp.Checked == true)
{
//做你的事情。。
}