【发布时间】:2011-01-13 14:15:12
【问题描述】:
我在一个 aspx 页面上有一个 2 用户控件。 1 个控件有搜索条件和搜索按钮,第 2 个用户控件有 gridview。
当用户输入creteria并点击搜索按钮时如何绑定gridview。
【问题讨论】:
我在一个 aspx 页面上有一个 2 用户控件。 1 个控件有搜索条件和搜索按钮,第 2 个用户控件有 gridview。
当用户输入creteria并点击搜索按钮时如何绑定gridview。
【问题讨论】:
点击事件需要冒泡到aspx页面,然后传递给gridview用户控件。请参阅以下链接如何冒泡事件。
【讨论】:
考虑到第一个 UserControl 会生成一个 DataTable。在第二个 UserControl 中指定一个属性,该属性接受数据表并将其绑定到控件内的网格。
控制2:
public datatable Result{get;set;}
Private void SetGrid()
{
datagrid1.datasource=Result;
datagrid1.databind();
}
控制1:
Datatable dt=SearchResult();
Control2.Result=dt;
【讨论】:
在 .ascx 页面的第二个用户控件中,您可以引用第一个用户控件 像
<%@ Reference Control="first user control names comes here" %>
在第二个用户控件页面加载事件中,您可以使用以下提到的方式找到第一个用户控件的对象:
UserControls_UCFirst uc1 = (UserControls_UCFirst)this.Parent.FindControl("UCFirst1");
然后您可以找到第一个用户控件的搜索条件对象(TextBox、DropDownList 等)。
TextBox txt = (TextBox)(uc1.FindControl("txtName"));
通过以上过程,您可以绑定网格视图。
希望它会有所帮助。
【讨论】:
首先在DataTable中获取搜索结果,并将DataTable存储在ViewState中。然后将 ViewState 中的 DataTable 设置为 GridView 的数据源。 像这样,
GridView1.DataSource = ViewState["DataTable1"];
GridView1.DataBind();
希望对你有帮助。
【讨论】: