2012-09-01 3 views
0

나는 ActivityGrid라는 사용자 정의 컨트롤을 사용하여 생성자에서 개체 목록을 매개 변수로 사용합니다.gridview에 바인딩 된 사용자 정의 컨트롤에 매개 변수 전달

public ActivityGrid(List<clsActivityRow> ActivityData) 
{ 
    bindData(ActivityData); 
} 

나는 parentGrid라는 GRIDVIEW이 사용자 컨트롤을 바인딩해야하는, 그래서 Templatefield을 사용했다. 그것이있는 gridview 내부 을 결합하는 동안

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

어떻게이 사용자 컨트롤 개체의 목록을 통과합니까?

나는 List<clsActivityRow> ActivityData 객체의 목록을 코드 숨김 상태로 준비했습니다.

+0

사용자 컨트롤에 gridView1을 찾을 수있다 즉 그리드 뷰가있는 경우. WebForms 모델에는 적합하지 않습니다. –

답변

0

당신은 RowDataBound 이벤트에 모든 행 GridViewParent에 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

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(); 
       } 
     }   
} 
0

UserControl에서 public 속성을 만들어이 공용 속성 집합 블록에서 bindData 메서드를 호출 할 수 있습니다.

GridView RowDataBound 이벤트에서이 usercontrol에 대한 ActiveData를 나열하십시오.

관련 문제