C# 在asp.net中维护分页时选中复选框的ViewState
我有一个带有一些数据的C# 在asp.net中维护分页时选中复选框的ViewState,c#,asp.net,gridview,checkbox,webforms,C#,Asp.net,Gridview,Checkbox,Webforms,我有一个带有一些数据的Gridview。我有5行分页。每当我选中第一页中的复选框并转到第二页时,我就会再次来到第一页。复选框检查值消失 选中的值不会保留。如何使其保持复选框的viewstate。请建议 代码: 请告诉我是否还需要Microsoft提供的示例 检查列表作为列表存储在视图状态中 要在页面之间传输数据,不能使用viewstate 在页面之间传输数据的选项有会话存储、通过查询字符串传输或将所需值存储到某种数据库中 最基本级别的会话存储示例: 在第一页: 在第二页: 这是网络表单吗?@Jo
Gridview
。我有5行分页
。每当我选中第一页中的复选框并转到第二页时,我就会再次来到第一页。复选框
检查值消失
选中的值不会保留。如何使其保持复选框的viewstate
。请建议
代码:
请告诉我是否还需要Microsoft提供的示例
检查列表作为列表存储在视图状态中 要在页面之间传输数据,不能使用viewstate
在页面之间传输数据的选项有会话存储、通过查询字符串传输或将所需值存储到某种数据库中
最基本级别的会话存储示例:
在第一页:
在第二页:
这是网络表单吗?@JohnB:是的webforms@JohnB:如何在页面索引更改时保持检查状态?复选框显示为runat=“server”`但您没有设置检查value@JohnB:是,它们在=“服务器”上运行。另外,如何在页面更改时设置check值和retain?我需要为页面上的checkbox设置它。我不这样认为,它将工作我没有多页,它在同一页上
<asp:GridView ID="grdDisplayCMMData" runat="server" AutoGenerateColumns="false" Width="100%" ShowHeaderWhenEmpty="true" CssClass="heavyTable table" EmptyDataText="No records to display"
AllowPaging="true" PageSize="2" OnPageIndexChanging="grdDisplayCMMData_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="ID" Visible="false">
<ItemTemplate>
<asp:Label ID="lblID_CMM" runat="server" Text='<%#Eval("ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SAP ID">
<ItemTemplate>
<asp:Label ID="lblSAP_ID_CMM" runat="server" Text='<%#Eval("SAP_ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID OD CHANGE">
<ItemTemplate>
<asp:Label ID="lblID_OD_COUNTCHANGE_CMM" runat="server" Text='<%#Eval("ID_OD_COUNTCHANGE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID OD CHANGE DATE">
<ItemTemplate>
<asp:Label ID="lblID_OD_CHANGEDDATE_CMM" runat="server" Text='<%#Eval("ID_OD_CHANGEDDATE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RRH COUNT CHANGE">
<ItemTemplate>
<asp:Label ID="lblRRH_COUNTCHANGE_CMM" runat="server" Text='<%#Eval("RRH_COUNTCHANGE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RRH COUNT CHANGE DATE">
<ItemTemplate>
<asp:Label ID="lblRRH_CHANGEDDATE_CMM" runat="server" Text='<%#Eval("RRH_CHANGEDDATE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TENANCY COUNT CHANGE">
<ItemTemplate>
<asp:Label ID="lblTENANCY_COUNTCHANGE_CMM" runat="server" Text='<%#Eval("TENANCY_COUNTCHANGE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TENANCY COUNT CHANGE DATE">
<ItemTemplate>
<asp:Label ID="lblTENANCY_CHANGEDDATE_CMM" runat="server" Text='<%#Eval("TENANCY_CHANGEDDATE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="STATUS">
<ItemTemplate>
<asp:Label ID="lblSTATUS_CMM" runat="server" Text='<%#Eval("STATUS") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="CREATED BY" Visible="false">
<ItemTemplate>
<asp:Label ID="lblCREATEDBY_CMM" runat="server" Text='<%#Eval("CREATED_BY") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Approve/Reject">
<ItemTemplate>
<asp:CheckBox ID="chkApprRejCMM" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void grdDisplayCMMData_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
BindCMMData();
grdDisplayCMMData.PageIndex = e.NewPageIndex;
grdDisplayCMMData.DataBind();
}
catch (Exception ex)
{
string strErrorMsg = ex.Message.ToString() + " " + "StackTrace :" + ex.StackTrace.ToString();
CommonDB.WriteLog("ERROR:" + strErrorMsg, ConfigurationManager.AppSettings["IPCOLO_LOG"].ToString());
}
}
Session["CheckboxValue"] = chkSomeCheckbox.Checked;
bool isCheckboxChecked = Convert.ToBoolean(Session["CheckboxValue"])