传递参数,这势必一个GridView的用户控件 [英] Passing parameter to a user control which is bound to a gridview
问题描述
我有一个名为ActivityGrid的用户控件这需要对象的名单在它的构造函数的参数。
公共ActivityGrid(列表< clsActivityRow> ActivityData)
{
bindData(ActivityData);
}
我需要绑定在一个名为parentGrid GridView控件这个用户的控制,所以我用的TemplateField。
< ASP:GridView控件ID =GridViewParent=服务器的AutoGenerateColumns =FALSE>
<柱体和GT;
< ASP:的TemplateField>
<&ItemTemplate中GT;
&所述; TR>
< TD合并单元格=100%>
< UC1:ActivityGrid ID =ActivityGrid1=服务器/>
< / TD>
< / TR>
< / ItemTemplate中>
< / ASP:的TemplateField>
< /专栏>
< / ASP:GridView的>
我如何通过对象的名单在该用户的控制,而这是
一个GridView里面绑定?
块引用>我有对象的
列表&LT名单; clsActivityRow> ActivityData code>在code后面准备好了。
解决方案您需要找到ActivityGrid1
对象
中的每行的<$的C $ C> GridViewParent 在的RowDataBound
事件并指派数据源
。保护无效GridViewParent_RowDataBound(对象发件人,GridViewRowEventArgs E)
{
如果(e.Row.RowType == DataControlRowType.DataRow)
{
ActivityGrid ActivityGrid1 =(ActivityGrid)e.Row.FindControl(ActivityGrid1);
如果(ActivityGrid1!= NULL)
{
ActivityGrid1.DataSource = SomeMethodToReturnDataSource();
ActivityGrid1.DataBind();
}
}
}或者如果你的控件有网格视图即ActivityGrid1有gridView1那么你可以找到gridView1在ActivityGrid1
保护无效GridViewParent_RowDataBound(对象发件人,GridViewRowEventArgs E)
{
如果(e.Row.RowType == DataControlRowType.DataRow)
{
ActivityGrid ActivityGrid1 =(ActivityGrid)e.Row.FindControl(ActivityGrid1);
如果(ActivityGrid1!= NULL)
{
GridView控件gridView1 =(ActivityGrid)ActivityGrid1 .FindControl(gridView1);
gridView1.DataSource = SomeMethodToReturnDataSource();
gridView1.DataBind();
}
}
}I have a user control named ActivityGrid which takes a list of object as a parameter in it's constructor.
public ActivityGrid(List<clsActivityRow> ActivityData) { bindData(ActivityData); }
I need to bind this user control in a gridView called parentGrid, so I used 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>
How do I pass the list of object in this user control while it is bound inside a gridview?
I have the list of object
List<clsActivityRow> ActivityData
ready in the code behind.解决方案You need to find the ActivityGrid1
object
in every row ofGridViewParent
in itsRowDataBound
event and assigndatasource
.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(); } } }
or if your control has grid view i.e ActivityGrid1 has gridView1 then you can find gridView1 in ActivityGrid1
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(); } } }
这篇关于传递参数,这势必一个GridView的用户控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!