如何在导航到下一页后维护页面索引信息,如单选按钮列表

本文关键字:索引 信息 列表 单选按钮 导航 一页 维护 | 更新日期: 2023-09-27 18:28:42

我有一个"类似调查"的项目,我的网格包括一个名称列表,单选按钮列表1-10供用户选择。网格中每个问题的页面大小仅为1。

我怎么可能导航回来并看到我的结果被选中?我研究了很长时间,有的说会话,有的用查询字符串。要详细说明我真正想要的是什么,请查看以下链接:http://www.aspsnippets.com/Articles/Preserving-state-of-Checkboxes-while-paging-in-ASP.Net-GridView-Control.aspx

如何在上面的项目中实现复选框作为单选按钮列表?

我的代码:

    protected void SubmitAppraisalGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
        ArrayList list = FindValues(this.Page);
        DataTable dt = (DataTable)ViewState["QuestionTable"];
        SubmitAppraisalGrid.DataSource = dt;
        SubmitAppraisalGrid.DataBind();
    }

设计:

<asp:GridView ID="SubmitAppraisalGrid" runat="server" AllowPaging="True" 
        AutoGenerateColumns="False" BorderWidth="0px" 
        OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging" 
        onrowcreated="SubmitAppraisalGrid_RowCreated" PageSize="1" ShowHeader="False" 
        style="margin-right: 0px">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Label ID="QuestionLbl" runat="server" Text='<%# Bind("Question")%>'></asp:Label>
                            <br />
                            <br />
                            <asp:GridView ID="StaffAppraisalGrid" runat="server" 
                        AutoGenerateColumns="False" BorderWidth="0px" CellPadding="4" CellSpacing="2" 
                        GridLines="Horizontal">
                                <Columns>
                                    <asp:BoundField DataField="StaffName" HeaderText="Name">
                                    <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>
                                    <asp:TemplateField HeaderText="Rate">
                                        <ItemTemplate>
                                            <asp:RadioButtonList ID="RadioList" runat="server" CellPadding="8" 
                                                DataSource='<%# Bind("RadioButtonList")%>' RepeatDirection="Horizontal">
                                            </asp:RadioButtonList>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Remarks">
                                        <ItemTemplate>
                                            <asp:TextBox ID="RemarksTbx" runat="server" CssClass="remarkTbx" 
                                                onKeyDown="limitText(this,500);" onkeypress="return check(event)" 
                                                onKeyUp="limitText(this,500);" onMouseDown="return DisableControlKey(event)" 
                                                Text='<%# Bind("RemarkTbx")%>' TextMode="MultiLine"></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:TemplateField>
                                </Columns>
                    </asp:GridView>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
        <PagerStyle HorizontalAlign="Center" />
    </asp:GridView>

如何在导航到下一页后维护页面索引信息,如单选按钮列表

我认为使用Session("QuestionTable")将如您所描述的那样工作,用户将能够导航回页面并查看他们选择的内容。在他们进入新页面之前,你只需要用他们在回发中所做的选择来更新它。

在PageLoad(或某个按钮单击事件)上,从RadioButtons检索值,更新QuestionTable,然后将其放入会话内存。

    Session("QuestionTable") = dt