如题,
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();
        }
    }

解决方案 »

  1.   

    什么叫“造成了对UserList页数据的覆盖”?请贴出你的调试过程,来说明。你贴出的代码看不出是怎么“覆盖数据”的。
      

  2.   

    通过逐句执行,
    发现先执行了子版的page_load(绑定数据)
    然后执行了母版的page_load(无操作)
      

  3.   

    对UserList页数据的覆盖
    是不存在这种现象的
    如果有数据,就应该是显示的
      

  4.   


    就是这样的,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
      

  5.   

    master的Page_Load必须加载数据吗?我觉得不应该。
      

  6.   


    任何子控件的page_load都会被aspx递归执行。母版页(经过asp.net系统编译之后)只不过是aspx内部的用户控件,当然也会执行这个方法。任何子控的page_load都会执行,所以你举出这个,证明不了“数据被覆盖了”那个结论。还是从头开始调试你的代码吧。
      

  7.   

    另外也不存在什么“子版”的概念。母版页就是用户控件。可能你以为<form runat="server" action=.../>这个标记只能出现在页面上,这是不对的。假设你写一个aspx,里边直接引用一个ascx,那么这些东西也完全可以写在ascx上。所以不能从“母版页”名词儿就牵强地去发明出“子版页”名词儿,因为那个名词儿混淆了结构。母版页是做为aspx里边的用于表达<form runat=server />部分的布局的,而aspx用于为自己内部的的 MastePage 的各个Content赋值(设置局部的子控件)。母版页是aspx里边的子控件,而且masterpage是一种usercontrol(是从它继承的)。