如题,
UserList页面使用了母版,现要在Page_Load中绑定gridview数据,但无法显示数据经过断点跟踪,发现数据源有数据,但页面没有显示
页面先加载了UserList页的Page_Load,然后加载了 MasterPage.Master的Page_Load
应该造成了对UserList页数据的覆盖请问各位XDJM怎么解决这个问题呢?
public partial class ListUser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
GwDataBind();
}
} private void GwDataBind()
{
string sql = "select * from [tb_user_info]";
DataBase db=new DataBase();
DataTable dt = db.GetDataTable(sql);
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();
}
}
UserList页面使用了母版,现要在Page_Load中绑定gridview数据,但无法显示数据经过断点跟踪,发现数据源有数据,但页面没有显示
页面先加载了UserList页的Page_Load,然后加载了 MasterPage.Master的Page_Load
应该造成了对UserList页数据的覆盖请问各位XDJM怎么解决这个问题呢?
public partial class ListUser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
GwDataBind();
}
} private void GwDataBind()
{
string sql = "select * from [tb_user_info]";
DataBase db=new DataBase();
DataTable dt = db.GetDataTable(sql);
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();
}
}
发现先执行了子版的page_load(绑定数据)
然后执行了母版的page_load(无操作)
是不存在这种现象的
如果有数据,就应该是显示的
就是这样的,msdn说的很清楚:The following is the sequence in which events occur when a master page is merged with a content page:Content page PreInit event.Master page controls Init event.Content controls Init event.Master page Init event.Content page Init event.Content page Load event.Master page Load event.Master page controls Load event.Content page controls Load event.Content page PreRender event.Master page PreRender event.Master page controls PreRender event.Content page controls PreRender event.Master page controls Unload event.Content page controls Unload event.Master page Unload event.Content page Unload event.来自:
http://msdn.microsoft.com/en-us/library/dct97kc3(v=vs.100).aspx
任何子控件的page_load都会被aspx递归执行。母版页(经过asp.net系统编译之后)只不过是aspx内部的用户控件,当然也会执行这个方法。任何子控的page_load都会执行,所以你举出这个,证明不了“数据被覆盖了”那个结论。还是从头开始调试你的代码吧。