現在把此web用戶控件添加到一.aspx頁面中.要實現單擊用戶控件中的button控件把搜索出來的結果數據綁定到.aspx頁面的gridview控件上去,如何實現呢?
如果gridview控件是放在.ascx文件中的話,那我們直接把搜索出來的數據綁定到它上面就行了。但現在gridview是放在.aspx文件裡,也就是說web用戶控件要如何才能訪問母頁面的控件,把數據綁定到母頁面的控件上去?
解決方法:
1.先在.aspx頁面的後台文件.aspx.cs中添加一個綁定數據的方法,代碼如下:
復制代碼 代碼如下:
public void BindSearchDataToGridView(string ddlvalue,string txtValue)
{
//ddlvalue 為用戶控件中dropdownlist控件的值
//txtValue 為用戶控件中textbox控件的值
//通過傳進來的參數去查詢數據,然後綁定到gridview控件上
//在這裡寫上綁定數據的方法
}
2.在web用戶控件中實現button控件的方法代碼如下:
復制代碼 代碼如下:
protected void btnSearch_Click(object sender, EventArgs e)
{
System.Web.UI.Page motherPage = this.Page;
Type pageType = motherPage.GetType();
//這裡用到了反射
System.Reflection.MethodInfo mi = pageType.GetMethod("BindSearchDataToGridView"); //"BindSearchDataToGridView"為.aspx頁面文件的方法
string txtValue= TextBox1.Text;
string ddlvalue= DropDownList1.SelectedValue.ToString();
mi.Invoke(motherPage, new object[] { ddlvalue, txtValue});
}