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 />
<asp:Label
ID="DescriptionLabel" runat="server" CssClass="generaltext" Text='<%# Eval("Description") %>'></asp:Label> <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);
}
}
あなたは常に 'CurrentPage'変数を使用していますが、宣言されて初期化された場所は表示されていません。たぶん、コンパイラは同じことに不平を言うでしょう。 –