0

我有一个名为 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在后面的代码中准备好了对象列表。

4

2 回答 2

0

您可以通过在 UserControl 中创建公共属性来执行此操作,并且在此公共属性设置块中,您可以调用 bindData 方法。

在 GridView RowDataBound 事件中传递此用户控件的对象 List ActiveData。

于 2012-09-01T07:41:18.247 回答
0

您需要在其事件object每一行中找到 ActivityGrid1并分配.GridViewParentRowDataBounddatasource

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();
                }
         }          
}
于 2012-09-01T07:41:30.807 回答