![](/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.