【问题标题】:Selection of checkboxes lost during pagination of gridview在gridview分页期间选择的复选框丢失
【发布时间】:2014-05-22 07:25:31
【问题描述】:

我在 gridview 中遇到问题,根据要求,我在 gridview 中设置了每页的记录数 = 4。我必须针对每个投诉选择复选框,但问题是当我到达 gridview 中的下一个页面时,例如从 1 到 2,然后当我回到第 1 页时,它不会在复选框中显示 TICK。当我浏览和返回页面时,它不记得我的选择。

<asp:GridView ID="GridViewSmsComplaints" AllowPaging="True" PageSize="4" runat="server" AutoGenerateColumns="False" CssClass="mGrid" BorderColor="#333333"  Width="550px" OnPageIndexChanging="GridViewSmsComplaints_PageIndexChanging" >
               <Columns>
                <asp:BoundField HeaderText="ID" DataField="ID" /> 
                <asp:BoundField HeaderText="Recieving Date" DataField="RecievingDate" />  
                <%--<asp:BoundField HeaderText="ToMobileNo" DataField="ToMobileNo" />  --%>
                <asp:BoundField HeaderText="FromMobileNo" DataField="FromMobileNo" /> 
                <asp:BoundField HeaderText="Message" DataField="Message" >   
                   <ItemStyle Wrap="True" />
                   </asp:BoundField>
                <asp:TemplateField HeaderText="IsComplaint">
                 <ItemTemplate>
                  <asp:CheckBox ID="ckboxIsComplaint"  runat="server" Checked='<%# Convert.ToBoolean(Eval("IsComplaint").ToString()) %>' />
                 </ItemTemplate>
                </asp:TemplateField>
               </Columns>
            </asp:GridView>

【问题讨论】:

标签: c# asp.net .net gridview


【解决方案1】:

请检查上面的链接。这里清楚地解释了您的问题here。我认为这可能会有所帮助

【讨论】:

    【解决方案2】:

    根据 cmets...

    如果您不通过处理复选框的OnCheckChanged 事件来更新底层数据库,那么它将一直在读取相同的数据。

    How to add event for Checkbox click in Asp.net Gridview Column,我提取所需信息并尝试修改以适合您最初的问题。

    <asp:TemplateField HeaderText="IsComplaint">
       <ItemTemplate>
          <asp:CheckBox ID="ckboxIsComplaint"  runat="server" Checked='<%# Convert.ToBoolean(Eval("IsComplaint").ToString()) %>' OnCheckedChanged="chk_CheckedChanged" AutoPostBack="true/>
       </ItemTemplate>
    </asp:TemplateField>
    

    在 aspx.cs 页面中添加复选框更改事件

    protected void chk_CheckedChanged(object sender, EventArgs e)
    {
        GridViewRow row = ((GridViewRow)((CheckBox)sender).NamingContainer);
        <your data source>.Rows[row.DataItemIndex]["B"] = ((CheckBox)GridViewSmsComplaints.Rows[row.RowIndex].FindControl("ckboxIsComplaint")).Checked;
    

    }

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 2011-10-03
      • 1970-01-01
      • 2017-01-04
      • 2010-11-23
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      相关资源
      最近更新 更多