2012-03-22 1 views
0

나는 사용자가 선택할 수있는 radiobuttonlist 1-10 선택 항목이있는 내 표에 내 표 목록이 포함 된 "조사 형"프로젝트가 있습니다. 그리드는 모든 질문마다 페이지 크기가 1입니다.다음 페이지로 이동 한 후 radiobuttonlist와 같은 페이지 인덱스 정보를 유지하는 방법은 무엇입니까?

어떻게 돌아가서 내 결과를 선택할 수 있습니까? 나는 오랫동안 연구 해왔고 일부는 세션을 말하고 일부는 쿼리 문자열을 사용한다. 내가 실제로 원하는 것에 대해 더 자세히 설명하려면 다음 링크를 참조하십시오. http://www.aspsnippets.com/Articles/Preserving-state-of-Checkboxes-while-paging-in-ASP.Net-GridView-Control.aspx

위의 프로젝트에서 radiobuttonlist로 확인란을 생각해보십시오. 급히 회신이 필요합니다. 제발 도와주세요.

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

나는 당신이 설명하는대로 작동 세션 ("QuestionTable")를 사용하여 생각, 사용자가 페이지로 다시 이동 할 수 있어야하고, 볼 그들이 선택한 것. 새로운 페이지로 이동하기 전에 포스트 백을 사용하여 선택한 항목으로 업데이트해야합니다.

PageLoad (또는 일부 버튼 클릭 이벤트)에서 RadioButtons에서 값을 검색하고 QuestionTable을 업데이트 한 다음 세션 메모리에 넣습니다.

Session("QuestionTable") = dt 
관련 문제