2013-05-16 194 views
0

我有一个更新面板中的动态表。表格的数据从后面的代码中填充。在每一行都有一个复选框。在回发后,如果需要检查复选框,则需要重新检查。我有所有需要在列表中查找的项目。该列表在PreRenderer中被检查。如果页面第一次打开,这工作正常。在Page_PreRender中回发后检查并取消选中复选框

void Page_PreRender(object sender, EventArgs e) 
     { 
      foreach (string CheckedeID in cboCheckedList) 
      { 
       CheckBox checkedBox = (CheckBox)tbl_main.FindControl(CheckedeID); 
       checkedBox.Checked = true; 
      } 
     } 

回传后,如果一个按钮被点击更改检查状态。新的ID被添加到cboCheckedList中。我可以看到什么时候我正在调试项目在列表中,并且新项目也被检查。但是当我回到页面时,复选框没有被选中。

我是否将复选框设置在错误的位置? 我应该在哪里设置复选框,以便它保持检查状态?

表中的UpdatePanel的代码:

<asp:UpdatePanel runat="server" ID="UpdatePanel2" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:Table runat="server" ID="Table1" BorderStyle="Solid" BorderWidth="2" GridLines="Both" BackColor="White" class="tablesorter"> 
       <asp:TableHeaderRow ID="TableHeaderRow2" runat="server"> 
        <asp:TableHeaderCell BackColor="#CEE3F6" ForeColor="White" Wrap="false" Width="50px" 
         HorizontalAlign="Center" CssClass="NoImage"> 
        </asp:TableHeaderCell> 
        .... 
       </asp:TableHeaderRow> 
      </asp:Table> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
+2

告诉我你的'Page_load'代码PLZ – Rahul

+0

我可以告诉你,但也有很多在onload功能。你能告诉我你想看什么,所以我可以给你一个更短的代码? – Freddy

+1

你使用'onpostback'属性的'onLoad'或'pageload' – Rahul

回答

0

卸下从更新面板将UpdateMode =“条件”没有的伎俩。

<asp:UpdatePanel runat="server" ID="UpdatePanel2"> 
      <ContentTemplate> 
       <asp:Table runat="server" ID="Table1" BorderStyle="Solid" BorderWidth="2" GridLines="Both" BackColor="White" class="tablesorter"> 
        <asp:TableHeaderRow ID="TableHeaderRow2" runat="server"> 
         <asp:TableHeaderCell BackColor="#CEE3F6" ForeColor="White" Wrap="false" Width="50px" 
          HorizontalAlign="Center" CssClass="NoImage"> 
         </asp:TableHeaderCell> 
         .... 
        </asp:TableHeaderRow> 
       </asp:Table> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
相关问题