2012-03-22 3 views
0

У меня есть проект, похожий на опрос, в котором моя сетка содержит список имен с выбором radioobuttonlist 1-10 для выбора пользователем. Сетка имеет размер страницы всего по 1 для каждого вопроса.Как сохранить информацию об индексах страницы, такую ​​как radioobuttonlist после перехода на следующую страницу?

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

Пожалуйста, помогите мне представить флажок в качестве радиобулочного видео в вышеуказанном проекте. Мне нужен ответ срочно, пожалуйста, помогите мне.

mycode:

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> 

ответ

0

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

На странице PageLoad (или на какой-либо кнопке Click Event) извлекаются значения из RadioButtons, обновляется ваш QuestionTable, а затем помещается в память сеанса.

Session("QuestionTable") = dt 
Смежные вопросы