在网格视图分页期间丢失的复选框的选择
本文关键字:复选框 选择 网格 视图 分页 | 更新日期: 2023-09-27 18:04:45
我在gridview中有问题,根据要求,我在gridview中设置了每页记录数= 4。我必须针对每个投诉选择复选框,但问题是,当我在网格视图中到达下一页时,例如从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>
请查看以上链接。这里你的问题已经清楚地解释了这里。我想这可能会有帮助
根据注释…
如果您不通过处理复选框的OnCheckChanged
事件来更新底层数据库,那么它将一直读取相同的数据。
从如何在Asp.net Gridview列中添加复选框单击事件,我已经提取了所需的信息,并试图修改以适应您的初始问题。
<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;
}