2012-03-13 9 views
0

私は新しいASP.NET開発者です。私はDataListを持っており、ページング機能が必要なWebベースのアプリケーションを開発しています。私はCodeProjectのこの記事で説明されているものに従っていますが、それは私とはうまく動作せず、私はこのエラーを受け取り、それを理解できませんでした。このDataListをページングプロパティで取得する方法は?

エラー:

The name 'CurrentPage' does not exist in the current context.

それでは、どのようにこのエラーを修正し、このDataListコントロールでページング機能を取得するには?

ASP.NETコード:

<tr> 
      <td width="100%"> 
       <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource2" > 
           <ItemTemplate> 
            <asp:HyperLink 
              ID="HyperLink1" runat="server" NavigateUrl='<%# "StartQuiz.aspx?testid=" + Eval("QuizID") %>' 
              Text='<%# Eval("Title") %>'></asp:HyperLink><br /> 
            &nbsp;<asp:Label 
             ID="DescriptionLabel" runat="server" CssClass="generaltext" Text='<%# Eval("Description") %>'></asp:Label>&nbsp;<br /> 
            <br /> 
           </ItemTemplate> 
          </asp:DataList> 
       <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
           SelectCommand="SELECT [Title], [Description], [QuizID],[IsSent] FROM [Quiz] where [IsSent]=1 order by [QuizID] DESC"> 
       </asp:SqlDataSource> 
      </td> 
     </tr>           

     <tr> 
      <td> 
       <asp:Label ID="lblCurrentPage" runat="server" Visible="true"></asp:Label> 
      </td> 
     </tr> 

     <tr> 
      <td align="center"> 
       <asp:Button ID="cmdPrev" runat="server" Text=" << " OnClick="cmdPrev_Click" /> 
       <asp:Button ID="cmdNext" runat="server" Text=" >> " OnClick="cmdNext_Click" /> 

      </td> 
     </tr> 

コードビハインド:

protected void items() 
    { 
     PagedDataSource objDs = new PagedDataSource(); 
     DataView dv = (DataView)SqlDataSource2.Select(DataSourceSelectArguments.Empty); 
     objDs.DataSource = dv; 
     objDs.AllowPaging = true; 
     objDs.PageSize = 5; 
     objDs.CurrentPageIndex = CurrentPage; 
     lblCurrentPage.Text = "Page:" + (CurrentPage + 1).ToString() + " Of " + objDs.PageCount.ToString(); 
     cmdPrev.Enabled = !objDs.IsFirstPage; 
     cmdNext.Enabled = !objDs.IsLastPage; 
     DataList1.DataSource = objDs; 
     DataList1.DataBind(); 

    } 


    protected void cmdPrev_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      CurrentPage -= 1; 
      items(); 
     } 
     catch (Exception ex) 
     { 
      Logger.LogException(ex); 
     } 
    } 

    protected void cmdNext_Click(object sender, EventArgs e) 
    { 
     try 
     { 

      CurrentPage += 1; 
      items(); 
     } 
     catch (Exception ex) 
     { 
      Logger.LogException(ex); 
     } 
    } 
+0

あなたは常に 'CurrentPage'変数を使用していますが、宣言されて初期化された場所は表示されていません。たぶん、コンパイラは同じことに不平を言うでしょう。 –

答えて

0

宣言 "currentPageに変数のすべての上部に" 私はあなたの場合にはそれがあるべきと信じてint型currentPageに= 1 ;

関連する問題