2011-01-13 15 views
0

Ich habe eine 2 usercontrol auf einer aspx-Seite. 1 Steuerelement hat Such-Creteria und Such-Schaltfläche und 2. Usercontrol hat Gridview.Bind Gridview auf Benutzersteuerung

Wie binde ich gridview, wenn der Benutzer creteria eingibt und auf den Suchknopf klickt.

Antwort

1

Das click -Ereignis muss bis zur ASPX-Seite durchgeblubbert und dann an die gridview-Benutzersteuerung übergeben werden. Siehe den folgenden Link, um Ereignisse zu blasen.

http://odetocode.com/code/94.aspx

0

die erste Usercontrol Betrachtet man erzeugt eine Datentabelle. Geben Sie eine Eigenschaft im 2. UserControl an, die die Datentabelle akzeptiert und an das Raster im Steuerelement bindet.

Control2:

public datatable Result{get;set;} 

Private void SetGrid() 
{ 
datagrid1.datasource=Result; 
datagrid1.databind(); 
} 

Control1:

Datatable dt=SearchResult(); 
Control2.Result=dt; 
0

In der zweiten Benutzersteuerung in .ascx Seite können Sie zunächst Benutzersteuerung Referenz wie als

<%@ Reference Control="first user control names comes here" %> 

In zweitem Benutzer control page load event Sie können das Objekt der ersten Benutzerkontrolle mit belo finden w mentioed Möglichkeiten:

UserControls_UCFirst uc1 = (UserControls_UCFirst)this.Parent.FindControl("UCFirst1"); 

dann können Sie Suchkriterien Objekte finden (TextBox, Dropdownlist, etc ..) der ersten Benutzersteuerung.

TextBox txt = (TextBox)(uc1.FindControl("txtName")); 

Durch obigen Prozess können Sie Gitteransicht binden.

Ich hoffe, es hilft.

0

Zuerst Erhalten Sie die gesuchten Ergebnisse in einer DataTable und speicherte die DataTable in einem ViewState. Und dann legen Sie die DataTable in einem ViewState als Datenquelle der GridView fest. Wie diese

GridView1.DataSource = ViewState["DataTable1"]; 
GridView1.DataBind(); 

Ich hoffe, das u helfen.