Повторитель с помощью пользовательского элемента управления - PullRequest
0 голосов
/ 02 сентября 2010

У меня есть повторитель, с помощью которого я хочу несколько раз отображать пользовательский элемент управления, заполненный данными.
В настоящее время у меня есть это:

<asp:Repeater runat="server" ID="MyRepeater" >
    <ItemTemplate>
        <uc1:MyItems ID="MyItems1" runat="server"  />
    </ItemTemplate>
</asp:Repeater>

Мой пользовательский элемент управления имеет три свойства, которые я хочу заполнить для каждого. В настоящее время у меня есть это:

protected void Page_Load(object sender, EventArgs e)
{
    MyDataSource.SelectCommand =
                "SELECT Name, Address, Phone " +
                "FROM TestTable ";
    MyDataSource.SelectCommandType = SqlDataSourceCommandType.Text;
    DataView resultsdv = (DataView)MyDataSource.Select(DataSourceSelectArguments.Empty);
    foreach (DataRow dr in resultsdv.Table.Rows)
    {            
        MyItems1.Cust_Name = dr["Name"].ToString();
        MyItems1.Cust_Address = dr["Address"].ToString();
        MyItems1.Cust_Tel = dr["Phone"].ToString();
    }
}

Очевидно, это не то, что я хочу. Можно ли сказать ретранслятору, что я хочу заполнить свой пользовательский элемент управления - либо связав его с данными, либо заполнив его вручную, как описано выше?

Ответы [ 2 ]

3 голосов
/ 02 сентября 2010
<asp:Repeater runat="server" ID="MyRepeater" >
    <ItemTemplate>
        <uc1:MyItems ID="MyItems1" MyItems="<%# Eval("Name") %>" ... runat="server"  />
    </ItemTemplate>
</asp:Repeater>

protected void Page_Load(object sender, EventArgs e)
{
    MyDataSource.SelectCommand =
                "SELECT Name, Address, Phone " +
                "FROM TestTable ";
    MyDataSource.SelectCommandType = SqlDataSourceCommandType.Text;
    DataView resultsdv = (DataView)MyDataSource.Select(DataSourceSelectArguments.Empty);
    MyRepeater.DataSource = resultsdv.Table.Rows;
    MyRepeater.DataBind()

}
1 голос
/ 02 сентября 2010

Я думаю, что нужно исправить:

<asp:Repeater runat="server" ID="MyRepeater" >
    <ItemTemplate>
        <uc1:MyItems ID="MyItems1" Cust_Name=<%#Eval("Name") %> Cust_Address=<%#Eval("Address")%> Cust_Tel=<%#Eval("Phone")%> runat="server"  />
    </ItemTemplate>
</asp:Repeater>
...