Как сохранить информацию индекса страницы, такую ​​как radiobuttonlist, после перехода на следующую страницу? - PullRequest
0 голосов
/ 22 марта 2012

У меня есть «подобный опросу» проект, в котором моя сетка включает в себя список имен с радиобуттонистом 1-10 для выбора пользователем. Сетка имеет размер страницы всего 1 на каждый вопрос.

Как это возможно, я могу вернуться назад и увидеть выбранный результат? Я долго искал, некоторые говорят, что сессия, а некоторые используют строку запроса. Чтобы узнать больше о том, что я на самом деле хочу, пожалуйста, посмотрите на эту ссылку: http://www.aspsnippets.com/Articles/Preserving-state-of-Checkboxes-while-paging-in-ASP.Net-GridView-Control.aspx

Как мне установить флажок в качестве radiobuttonlist в вышеуказанном проекте?

Мой код:

    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>

1 Ответ

0 голосов
/ 29 марта 2012

Я думаю, что использование Session («QuestionTable») будет работать так, как вы описываете, пользователь сможет вернуться обратно на страницу и посмотреть, что он выбрал.Вам просто нужно обновить его, выбрав их с обратной передачей, прежде чем они перейдут на новую страницу.

В вашей PageLoad (или какой-либо кнопке Click Event) получите значения из RadioButtons, обновите вашQuestionTable, затем поместите его в память сеанса.

    Session("QuestionTable") = dt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...