我做了一个list.ascx控件,其中有一个DATELIST1来显示数据库内容;
list.ascx.cs中...
定义了一个变量:public string type="";
在Page_Load中
private void Page_Load(object sender, System.EventArgs e)
{
  if(type=="a")
  {
     DATELIST1绑定数据库1;
  }
  else
  {
     DATELIST1绑定数据库2;
  }
}
在list.ascx中有一个:
<FONT face="宋体"><%=type%></FONT>在调用list.ascx中的show.aspx:
<%@ Register TagPrefix="list" TagName="listall" Src="listall.ascx" %>
<list:listall id="myc" type="a" runat="server"></list:listall>
show.aspx.cs中:
private void Button1_Click(object sender, System.EventArgs e)
{
mycontrol=(weile.music.listall)Page.FindControl("myc");
mycontrol.type="b";
}
结果点击了show.aspx中的Button1按钮后<FONT face="宋体"><%=type%></FONT>到是显示成<FONT face="宋体">b</FONT>但DATELIST1并没有绑定到数据库2还是显示数据库1的内容...这是什么原因啊?

解决方案 »

  1.   

    因为页面的事件发生顺序问题!
    你应该在 list.ascx.cs 定义一个 public BindData方法 ,加入这个 
    if(type=="a")
      {
         DATELIST1绑定数据库1;
      }
      else
      {
         DATELIST1绑定数据库2;
      }在 show.aspx.cs中:
    private void Button1_Click(object sender, System.EventArgs e)
    {
    mycontrol=(weile.music.listall)Page.FindControl("myc");
    mycontrol.type="b";
             mycontrol.BindData    //增加
    }