2011-02-04 4 views
3

컬렉션을 반복하고 값을 UserControl에 전달해야합니다. 동적이며 매개 변수 값을 전달하는 방법을 알 수 없습니다. 나는 중계기를 사용하고있다. 뒤에 코드에서CodeBehind에서 Repeater에서 UserControl에 매개 변수를 전달하는 방법 C#

<asp:Repeater runat="server" id="Repeater1"> 
    <ItemTemplate> 
    <uc1:testControl ID="testControl1" runat="server" /> 
    </ItemTemplate> 
</asp:Repeater> 

는 :

Repeater1.DataSource = _myCollection; 
       Repeater1.DataBind(); 

어떤 도움을 크게 감상 할 수있다! 감사합니다

+0

확실하지 왜하지만 코드 상자가 완전히 위의 최대 실패했습니다. 나는 중계기 코드를 붙여 넣기를 시도하고 그것을 타이핑하고 따옴표를 감싸고 코드 태그를 붙여 놓았다. 실패. – mokumaxCraig

+0

코드를 강조 표시하고 ** {} ** 버튼을 누를 수 있습니다. –

+1

남자, 그 말은 날 미치게했습니다. 정보 저스틴 주셔서 감사! 도움이 되셨으면 좋겠다. – mokumaxCraig

답변

8

ASPX 코드 :

<asp:Repeater runat="server" id="Repeater1" OnItemDataBound="Repeater1_ItemDataBound"> 
    <ItemTemplate> 
     <uc1:testControl ID="testControl1" runat="server" /> 
    </ItemTemplate > 
</asp:Repeater> 

Codebehind가 :

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    testControl ctrl = e.Item.FindControl("testControl1") as testControl; 

    if (ctrl != null) 
     ctrl.MyParameterName = "Foo"; 
} 
0

당신이 훨씬 더 간단하게 그것을 얻을 수 있습니다

<asp:DataList RepeatLayout="Table" RepeatColumns="2" RepeatDirection="Horizontal" runat="server" ID="dl"> 
      <ItemTemplate>    
       <uc1:UCGroup ID="UCGroup1" runat="server" Title=<%# DataBinder.Eval(Container.DataItem, "RecipientGroup.Name") %> /> 

        <div class="template_over"> 
         <a href="/ScheduleCampaign/<%# DataBinder.Eval(Container.DataItem, "RecipientGroup.Name") %>"> 

         <%# DataBinder.Eval(Container.DataItem, "Email") %> 

        </a> 
        </div> 
       </ItemTemplate>    
      </asp:DataList> 

public partial class ChooseGroup : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     dl.DataSource = GroupsHndlr.GetExtendedRecipients(MySession.Current.ClientId); 
     dl.DataBind(); 
    } 
} 

컨트롤의 코드 :

<asp:Label ID="lbltitle" runat="server"></asp:Label> 

<asp:Repeater ID="rpRecipients" runat="server"> 
    <ItemTemplate> 
     1 
     </ItemTemplate> 
</asp:Repeater> 

public partial class UCGroup : System.Web.UI.UserControl 
{ 
    public string Title { get; set; } 
    public List<string> Recipients { get; set; } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     this.lbltitle.Text = Title; 
     this.rpRecipients.DataSource = Recipients; 
     this.rpRecipients.DataBind(); 
    } 
} 
관련 문제