如题,我得不到chekbox选中状态的原因是不因为提交的时候,页面进了刷新。所有CheckBox都灰复了默认状态?我如何才能得到它改变后的状态呢?(在.cs中)谢谢!

解决方案 »

  1.   

    你可能数据拌定没放在!IsPostBack中吼.
      

  2.   

    页面:  <asp:datagrid id="dgUserList" runat="server" Width="640px" BorderColor="White" PagerStyle-HorizontalAlign="Right"
                     AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False">
                     <AlternatingItemStyle BackColor="#F5F5F5"></AlternatingItemStyle>
                     <ItemStyle HorizontalAlign="Center"></ItemStyle>
                     <HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#4A95FD" Height="8"></HeaderStyle>
                     <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
                     <Columns>
                      <asp:TemplateColumn>
                       <HeaderTemplate>
                        <asp:CheckBox id="chkAll" runat="server"></asp:CheckBox>
                       </HeaderTemplate>
                       <ItemTemplate>
                        <asp:CheckBox id="chkItem" runat="server"></asp:CheckBox>
                       </ItemTemplate>
                      </asp:TemplateColumn>
                      <asp:BoundColumn DataField="id" HeaderText="序号"></asp:BoundColumn>
                      <asp:BoundColumn DataField="username" HeaderText="用户名"></asp:BoundColumn>
                      <asp:BoundColumn DataField="workno" HeaderText="工号"></asp:BoundColumn>
                      <asp:BoundColumn DataField="dept" HeaderText="部门"></asp:BoundColumn>
                     </Columns>
                     <PagerStyle Visible="False" HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
                    </asp:datagrid>  后台代码: private void dgUserList_PreRender(object sender, System.EventArgs e)
      {
       foreach (DataGridItem item in dgUserList.Controls[0].Controls)
       {
        if (item.ItemType == ListItemType.Header)
        {
         CheckBox chkAll=(CheckBox)item.FindControl("chkAll");
         System.Text.StringBuilder strScript = new System.Text.StringBuilder("<script language='javascript'> \n");
         strScript.Append("    function checkStatus() { \n");
         strScript.Append("        var bAll = true; \n");
         strScript.Append("        bAll = document.all('" + chkAll.ClientID + "').checked; \n");     for(int i=0; i<dgUserList.Items.Count ; i++)
         {
          strScript.Append("        document.all('" + dgUserList.Items[i].Cells[0].FindControl("chkItem").ClientID + "').checked = bAll; \n");
         }
         strScript.Append("    } \n");
         strScript.Append("</script> \n");     if(!Page.IsClientScriptBlockRegistered("checkStatus"))
          Page.RegisterClientScriptBlock("checkStatus",strScript.ToString());     chkAll.Attributes.Add("onclick","checkStatus()");
         return;
        }
       }
      

  3.   

    我在DataGrid实现全选已经实现,也得到了它的值,可是在再CheckBox的TreeView里的,用javascrpt实现了全选。它的值却怎么也得不到