繁体   English   中英

将参数传递给绑定到gridview的用户控件

[英]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。

您需要在GridViewParentRowDataBound事件的每一行中找到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM