![](/img/trans.png)
[英]Passing parameter to sqldatasource that's bound to a dropdownlist in a gridview update
[英]Passing parameter to a user control which is bound to a gridview
我有一個名為ActivityGrid的用戶控件,該控件將對象列表作為其構造函數中的參數。
public ActivityGrid(List<clsActivityRow> ActivityData)
{
bindData(ActivityData);
}
我需要將此用戶控件綁定到名為parentGrid的gridView中,因此我使用了Templatefield。
<asp:GridView ID="GridViewParent" runat="server" AutoGenerateColumns ="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<tr>
<td colspan="100%">
<uc1:ActivityGrid ID="ActivityGrid1" runat="server" />
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
當綁定到gridview中時,如何在此用戶控件中傳遞對象列表?
我在后面的代碼中已准備好對象List<clsActivityRow> ActivityData
。
您可以通過在UserControl中創建一個公共屬性來執行此操作,然后在此公共屬性集塊中調用bindData方法。
在GridView RowDataBound事件中為此對象控件傳遞對象List ActiveData。
您需要在GridViewParent
的RowDataBound
事件的每一行中找到ActivityGrid1 object
,並分配datasource
。
protected void GridViewParent_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ActivityGrid ActivityGrid1= (ActivityGrid )e.Row.FindControl("ActivityGrid1");
if (ActivityGrid1 != null)
{
ActivityGrid1.DataSource = SomeMethodToReturnDataSource();
ActivityGrid1.DataBind();
}
}
}
或者,如果您的控件具有網格視圖,即ActivityGrid1具有gridView1,則可以在ActivityGrid1中找到gridView1
protected void GridViewParent_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ActivityGrid ActivityGrid1= (ActivityGrid )e.Row.FindControl("ActivityGrid1");
if (ActivityGrid1 != null)
{
GridView gridView1 = (ActivityGrid )ActivityGrid1 .FindControl("gridView1");
gridView1.DataSource = SomeMethodToReturnDataSource();
gridView1.DataBind();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.