我有一个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会照顾这个,但不确定我哪里出错了。
谢谢高级
答案 0 :(得分:1)
我在看了一段时间之后意识到,因为我正在处理GridView以刷新HeaderText,所以你还需要DataBind Gridview。添加一个简单的GridviewName.DataBind();我的功能解决了我的问题。
感谢您的帮助!
答案 1 :(得分:0)
我想您可以将代码移动到Page_LoadComplete事件,以确保在调用setUpGrid()时加载所有控件。
void Page_LoadComplete(object sender, EventArgs e)
{
if (!IsPostBack)
{
setUpGrid ();
}
}