小弟做了一个页面,用repeater绑定数据,显示数据的代码如下:
<asp:repeater id="Repeater1" runat="server">
<HeaderTemplate>
<table align="center" border="1" width="80%">
<tr>
<td>Select</td>
<td>Subject</td>
<td>Company</td>
<td>Publisher</td>
<td>PostDate</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><input type="checkbox"></td>
<td><a href='<%# "detail.aspx?type="+Request.QueryString["type"]+"&id="+(i++).ToString()%>'> <%# DataBinder.Eval(Container.DataItem, "Subject")%></a></td>
<td><a href = '<%# "companyInfo.aspx?name="+DataBinder.Eval(Container.DataItem, "Company")%>'> <%# DataBinder.Eval(Container.DataItem, "Company")%></a></td>
<td><a href = '<%# "memberInfo.aspx?name="+DataBinder.Eval(Container.DataItem, "Publisher")%>'> <%# DataBinder.Eval(Container.DataItem, "Publisher")%></a></td>
<td><%# DataBinder.Eval(Container.DataItem, "PostDate")%></td>÷</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:repeater>在页面出来之后,我在想要的数据项上把checkbox打上勾,想通过按钮事件收集选中项的信息,可以一按按钮那些勾就不见了,为什么,有什么办法可以解决

解决方案 »

  1.   

    how did you bind your repeater? do it insideif (!IsPostBack)
    {
      //....
    }by the way, i++ looks bad, use Container.ItemIndex instead
      

  2.   

    你在Page_Load中作的绑定应该在
    if (!IsPostBack)
    {}
      

  3.   

    是不是把原先在page_load里的代码放到
    if (!IsPostBack)
    {}
    里面,我试过了,还是那样
      

  4.   

    是不是按钮也应该在
    if (!IsPostBack)
    {}
    里绑定
      

  5.   

    是的,不在if (!IsPostBack)绑定状态就被回发了
      

  6.   

    我的按钮不是绑定在repeater里的,我把原先page_load里面的代码放到if (!IsPostBack)里,情况还是一样,后来我把添加按钮事件的代码也放到if (!IsPostBack)里面,按钮事件就不触发了,该怎么搞才好!
      

  7.   

    已经搞定了,原来我把checkbox的ruanat属性去掉了,所以出现错误,谢谢各位了!
      

  8.   

    <td><input type="checkbox"></td>不是服务端控件
    试试<td><input type="checkbox" Runat="server"></td>