Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在codebehind c中从中继器向UserControl传递参数#_C#_User Controls_Repeater - Fatal编程技术网

C# 如何在codebehind c中从中继器向UserControl传递参数#

C# 如何在codebehind c中从中继器向UserControl传递参数#,c#,user-controls,repeater,C#,User Controls,Repeater,我需要循环一个集合,并将值传递给UserControl。它是动态的,我不知道如何传递参数值。我用的是中继器 <asp:Repeater runat="server" id="Repeater1"> <ItemTemplate> <uc1:testControl ID="testControl1" runat="server" /> </ItemTemplate> </asp:Repeater> 任何帮助都将不胜感

我需要循环一个集合,并将值传递给UserControl。它是动态的,我不知道如何传递参数值。我用的是中继器

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

任何帮助都将不胜感激!感谢向事件添加事件处理程序…

ASPX代码:

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

您可以通过更简单的方式实现这一点:

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

控件的代码:

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



1.

public分部类UCGroup:System.Web.UI.UserControl
{
公共字符串标题{get;set;}
公共列表收件人{get;set;}
受保护的无效页面加载(对象发送方、事件参数e)
{
this.lbltitle.Text=标题;
this.rpRecipients.DataSource=收件人;
this.rpRecipients.DataBind();
}
}

不确定原因,但上面的代码框完全失败了。我试着粘贴我的转发器代码,键入它,将它用引号括起来,并在其周围放置代码标签。失败。你可以突出显示代码并按下{}按钮。伙计,这让我发疯了。谢谢你的信息,贾斯汀!
<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();
    }
}