传递参数,这势必一个GridView的用户控件 [英] Passing parameter to a user control which is bound to a gridview

查看:99
本文介绍了传递参数,这势必一个GridView的用户控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为ActivityGrid的用户控件这需要对象的名单在它的构造函数的参数。

 公共ActivityGrid(列表< clsActivityRow> ActivityData)
{
   bindData(ActivityData);
}

我需要绑定在一个名为parentGrid G​​ridView控件这个用户的控制,所以我用的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后面准备好了。


解决方案

您需要找到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 of GridViewParent in its RowDataBound event and assign 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();
                }
         }          
}

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆