当前位置: 代码迷 >> .NET新技术 >> 用户控件怎么传一个datatable给主页面
  详细解决方案

用户控件怎么传一个datatable给主页面

热度:138   发布时间:2016-04-25 01:49:17.0
用户控件如何传一个datatable给主页面
我把搜索做成一个用户控件mysearch.ascx,它有如下的按钮事件:
  protected void Search_Click(object sender, EventArgs e)
  { DataTable mydt = ubDAO.selectall("20");//此处取到了
  Response.Redirect("../a/aa.aspx");
  }
在aa.aspx中引入用户控件<uc2:mysearch ID="mysearch1" runat="server" />
  protected void Page_Load(object sender, EventArgs e)
  {
  GridView1.DataSource =this.mysearch1.mydt;//此处的值为NULL
  GridView1.DataBind();
  }
对用户控件的传值不太懂,求高人指点一下,我就是想点了用户控件的搜索按钮,控件传一个DT给主页,能在主页面aa.apsx显示出搜索结果。非常感谢

------解决方案--------------------
等到了你用户控件的事件的时候,已经过了 Page_Load 事件。

建议你在用户控件里定义一个事件,让主页面绑定。

C# code
public event Action<DataTable> SearchCompleted;protected void Page_Load(object sender, EventArgs e){   // 绑定事件处理   mysearch1 += MySearchComplete;}private void MySearchComplete(DataTable dt){    GridView1.DataSource = dt;//此处的值为NULL    GridView1.DataBind();}-------------- 控件的Button事件 --------------------protected void Search_Click(object sender, EventArgs e){     DataTable mydt = ubDAO.selectall("20");//此处取到了    // 触发这个事件    SearchCompleted(mydt);}
------解决方案--------------------
修改下:
C# code
mysearch1.SearchCompleted += MySearchComplete;
  相关解决方案