首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-02-28 
用户控件如何传一个datatable给主页面我把搜索做成一个用户控件mysearch.ascx,它有如下的按钮事件:protect

用户控件如何传一个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; 

热点排行