[英]Repeater using a user control
我有一個中繼器,可以用來多次顯示用戶控件,並填充數據。
目前,我有這個:
<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();
}
}
顯然,這不是我想要的。 是否可以通過數據綁定或以類似於上述的方式手動填充來告訴轉發器我要填充用戶控件?
<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()
}
我認為需要進行一些更正:
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.