视图状态无法正常工作 Asp.Net c#
View State not working correctly Asp.Net c#
我有一个包含星期几的列的 gridview。
我 运行 在第一次加载页面时使用此代码,以便日期正确。
if (!IsPostBack) {//my public function to set the dates, It works as expected.
setUpGrid ();
}
然后我有一个按钮,单击该按钮将在未来 7 天后显示下一周。一切正常,这里是代码
protected void NWeeks_Click (object sender, EventArgs e)
{DateTime hd2 = Convert.ToDateTime (gvappts.Columns [2].HeaderText);
if (ViewState ["hd2"] == null)
{ViewState ["hd2"] = 0;}
ViewState ["hd2"] = ((int)ViewState ["hd2"]) + 7;
gvappts.Columns [2].HeaderText = hd2.AddDays ((int)ViewState["hd2"]).ToString ("ddd dd MMM",
CultureInfo.CreateSpecificCulture ("en-US"));
}
我的问题是,您必须单击该按钮两次才能触发下周的计算。我以为 ViewState 会解决这个问题,但不确定我哪里出错了。
先谢谢了
我想您可以将代码移至 Page_LoadComplete 事件以确保在调用 setUpGrid() 时加载所有控件。
void Page_LoadComplete(object sender, EventArgs e)
{
if (!IsPostBack)
{
setUpGrid ();
}
}
我看了一会儿后意识到,由于我正在处理 GridView 以刷新 HeaderText,因此您还必须对 Gridview 进行数据绑定。添加一个简单的GridviewName.DataBind();我的功能解决了我的问题。
感谢您的帮助!
我有一个包含星期几的列的 gridview。 我 运行 在第一次加载页面时使用此代码,以便日期正确。
if (!IsPostBack) {//my public function to set the dates, It works as expected.
setUpGrid ();
}
然后我有一个按钮,单击该按钮将在未来 7 天后显示下一周。一切正常,这里是代码
protected void NWeeks_Click (object sender, EventArgs e)
{DateTime hd2 = Convert.ToDateTime (gvappts.Columns [2].HeaderText);
if (ViewState ["hd2"] == null)
{ViewState ["hd2"] = 0;}
ViewState ["hd2"] = ((int)ViewState ["hd2"]) + 7;
gvappts.Columns [2].HeaderText = hd2.AddDays ((int)ViewState["hd2"]).ToString ("ddd dd MMM",
CultureInfo.CreateSpecificCulture ("en-US"));
}
我的问题是,您必须单击该按钮两次才能触发下周的计算。我以为 ViewState 会解决这个问题,但不确定我哪里出错了。
先谢谢了
我想您可以将代码移至 Page_LoadComplete 事件以确保在调用 setUpGrid() 时加载所有控件。
void Page_LoadComplete(object sender, EventArgs e)
{
if (!IsPostBack)
{
setUpGrid ();
}
}
我看了一会儿后意识到,由于我正在处理 GridView 以刷新 HeaderText,因此您还必须对 Gridview 进行数据绑定。添加一个简单的GridviewName.DataBind();我的功能解决了我的问题。
感谢您的帮助!