【发布时间】:2014-06-18 03:17:36
【问题描述】:
我有一个关于我创建的与 Web 应用程序相关的类的范围的问题。 我的课程是 CCourseInfo,我将其创建为我的一个网页注册的私人成员。 在 Page_Load 方法中,有一个数据库调用来加载类成员 DataTable 中的表数据。此 DataTable 绑定到 gridview。 这是代码:
public partial class Enrollment : System.Web.UI.Page
{
private Course CCourseInfo = new Course("Courses");
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
//Get the Environment Setting to determine the database to access
txtBoxEnvironment.Text = CurrentEnvironment;
DAL.setCurrentEnvironment(CurrentEnvironment);
//Get Course information from database
CCourseInfo.getData();
CourseGridView.DataSource = CCourseInfo.TableInfo;
CourseGridView.DataBind();
}
}
}
我想实现分页。 此方法有效,但我必须再次获取数据才能填充 CCourseInfo 类中的 DataTable。
protected void CourseGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
CourseGridView.PageIndex = e.NewPageIndex;
CCourseInfo.getData();
CourseGridView.DataSource = CCourseInfo.TableInfo;
CourseGridView.DataBind();
}
我的问题是:为什么我必须再次获取数据?我在 Page_Load 方法中设置了 DataTable,并在 Enrollment 类下声明了该类。数据不应该仍然存在于 DataTable 中吗?如何更改我的设计以便我只需获取一次数据?
谢谢,
【问题讨论】:
-
你的课怎么样?
-
因为页面重新加载的时候,所有的东西都需要重新加载。这就是 Internet/Web 应用程序的工作方式,因为它不同于桌面应用程序。每次重新加载都是对服务器的新请求,而之前的请求“好像”不存在
标签: c# asp.net class datatable scope