今天做了个试验,发现,下面的代码中:public partial class _Default : System.Web.UI.Page
{
int[] a = new int[] { 1, 2, 3, 4 };
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int f = 9;
GridView1.DataSource = a;
DataBind();
}
}protected void Button1_Click(object sender, EventArgs e)
{
DataBind();
}}然后一点button1gridview的数据就没了。。我的理解是:在回发后,根据页面生命周期,button1单击后回发到服务器,先加载视图状态使gridview的datasource值为a,然后再执行click事件处理程序中的databind,这样的话数据应该还在啊,为什么会一点击就消失了呢?请指教!谢谢。。!
{
int[] a = new int[] { 1, 2, 3, 4 };
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int f = 9;
GridView1.DataSource = a;
DataBind();
}
}protected void Button1_Click(object sender, EventArgs e)
{
DataBind();
}}然后一点button1gridview的数据就没了。。我的理解是:在回发后,根据页面生命周期,button1单击后回发到服务器,先加载视图状态使gridview的datasource值为a,然后再执行click事件处理程序中的databind,这样的话数据应该还在啊,为什么会一点击就消失了呢?请指教!谢谢。。!
你不知道click事件到底做什么啦。
页面又刷新拉。
webForm和winForm运行机制完全不一样!!!
click就是放了个databind()进去而已哦。。
{
GridView1.DataSource = a;
DataBind();
}
postback之后要重新绑定数据
是DataBind();的问题。
按按钮时DataBind()没有数据源就没了。
如果楼主把DataBind()这句注释掉。那数据还是有的。
不知楼主知不知道!IsPostBack的意思
知道。
我知道是databind的问题,但是视图状态不是保存了datasource的属性值吗,databind的作用是把datasource的属性值加载到gridview控件里显示出来吧?为什么显示的数据会没有呢?
只是推测。