是这样子的,页面中一个gridview 一个textbox。我点击一个按钮postback回服务器端后,我在page_Load方法中可以得到textbox的值,而不能得到gridview的datasource? 而且在render方法的时候依旧取不到gridview的datasource,但是输出的客户端口gridveiw依然显示数据,我感到很奇怪,它在服务器端没重新用veiwstate加载值么? 但是我把页面的enableviewstate设为false的话,输出到客户端后,girdview就是空的,证明它在服务器端确实用veiwstate 加载数据了。。
{
if(!IsPostback)
{
BindData();
}
}可以说这类代码是又慢又有错误的。但是这类asp.net1.1风格的错误代码在网上非常普遍,所以我建议你使用数据源控件在使用现成的控制逻辑,而避免在这个地方手写代码。实际上,在回发时GridView需要恢复的是上一次页面输出时的控件树结构,而不是从数据库中去绑定现在的数据来产生控件结构。一个简单的button测试,如果你从刚开始学编程时就频繁地使用这个测试,你就能够很早就发现和解决很多似是而非的asp.net编程“范例”里边的bug来。
我想问下 如果使用
void Page_Load(object sender, EventArgs e)
{
if(!IsPostback)
{
BindData();
}
}
这种方法绑定gridview,在回发的时候好像也没有重新绑定数据源呀,因为它在if(!IsPostback) 中。为什么说这种方法是错误的呢?不太明白?能不能解释下?