如何用 ItemDataBound 事件,给嵌套在 Repeater1 中的 Repeater2 绑定数据??? 如何用 ItemDataBound 事件,给嵌套在 Repeater1 中的 Repeater2 绑定数据??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 something likevoid R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repeater rp = (Repeater)e.Item.FindControl("childRepeater"); rp.DataSource = ...; rp.DataBind(); } }<asp:repeater id="parentRepeater" runat="server" ItemDataBound="R1_ItemDataBound"> <itemtemplate> <asp:repeater id="childRepeater" runat="server"> <itemtemplate> ..... </itemtemplate> </asp:repeater> </itemtemplate></asp:repeater> 若为父子关系也可参考孟子的文章http://dotnet.aspx.cc/ShowDetail.aspx?id=54F4C732-AAE2-4135-FB1B-7B4B613BAA33 父子关系,可以用ItemDataBound 事件不?怎么老是不成啊?? yeshttp://support.microsoft.com/default.aspx?scid=kb;EN-US;306154http://www.c-sharpcorner.com/Code/2002/Aug/MasterDetailedDisplay.asp 有没有用ItemDataBound 事件的例子?? 不要用DataSet ! 有没有父子关系用ItemDataBound 事件的例子?? 不要用DataSet ! >> 不要用DataSet what are you using? to 思归,不用DataSet,可以使用实体类的集合,同样可以实现离线浏览。实例如下:Model层public class AccountModel{ private string username; private string password; public string UserName { get { return username; } set { username = value; } } public string Password { get { return password; } set { password= value; } }}DataAccess层从数据库获取数据public IList GetAccounts(){ IList accounts = new ArrayList(); using(rdr) { Account account = new Account(); 赋值------ accounts.Add(account); } return accounts;}WebUI层<%@ Import Namespace="Model层dll命名空间" %><asp:Repeater id="parent" runat="server" OnItemDataBound="parent_ItemDataBound"> <ItemTemplate> <asp:Label id="lblUserName" runat="server" Text="<%# ((AccountModel)Container.DataItem).UserName %>" /> <asp:Repeater id="child" runat="server"> <ItemTemplate> <asp:Label id="lblUser" runat="server" Text="<%# ((AccountModel)Container.DataItem).UserName %>" /> </ItemTemplate> </asp:Repeater> </ItemTemplate></asp:Repeater>后台:在Page_Load事件中绑定parent控件值protected void parent_ItemDataBound(object sender, RepeaterItemEventArgs e){ if(e.Item.ItemIndex > -1) { 获取父Repeater的数据项 AccountModel accountModel = (AccountModel)e.Item.DataItem; string userName = accountModel.UserName; 查找子Repeater控件 Repeater child = (Repeater)e.Item.FindControl("child"); 根据用户名获取子Repeater控件数据 IList dataSource = GetAccounts(userName); 绑定子控件 child.DataSource = dataSource; child.DataBind(); }}注:此法的效率不高,在并发用户少,数据量不大的情况下,可以使用 datalist换行问题 list释放内存问题 sql高手请进 在asp.net中,能不能实现服务器向客户端push数据啊? asp.net中如何控制接点上图片大小 HTML控件是不是比WEB控件省资源 怎么显示当前datagrid页显示的是表中的哪一行到哪一行? DataGrid能否横向排列??? 火急求教??ASP.NET如何检测并计算客户端软盘数据??? 关于自定义控件的问题,请大家帮忙? 我用水晶报表登陆SQL-SERVER数据库时,在page_load中已经写了登陆代码(请进),怎么还是登陆失败呢?高分求,是否还要在系统中设置什么, 取不到值,怎么回事???
void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{ if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rp = (Repeater)e.Item.FindControl("childRepeater");
rp.DataSource = ...;
rp.DataBind();
}
}
<asp:repeater id="parentRepeater" runat="server" ItemDataBound="R1_ItemDataBound">
<itemtemplate>
<asp:repeater id="childRepeater" runat="server"> <itemtemplate>
.....
</itemtemplate>
</asp:repeater>
</itemtemplate>
</asp:repeater>
http://dotnet.aspx.cc/ShowDetail.aspx?id=54F4C732-AAE2-4135-FB1B-7B4B613BAA33
实例如下:
Model层
public class AccountModel
{
private string username;
private string password; public string UserName
{
get
{
return username;
}
set
{
username = value;
}
} public string Password
{
get
{
return password;
}
set
{
password= value;
}
}
}
DataAccess层
从数据库获取数据
public IList GetAccounts()
{
IList accounts = new ArrayList();
using(rdr)
{
Account account = new Account();
赋值------
accounts.Add(account);
}
return accounts;
}WebUI层
<%@ Import Namespace="Model层dll命名空间" %><asp:Repeater id="parent" runat="server" OnItemDataBound="parent_ItemDataBound">
<ItemTemplate>
<asp:Label id="lblUserName" runat="server" Text="<%# ((AccountModel)Container.DataItem).UserName %>" />
<asp:Repeater id="child" runat="server">
<ItemTemplate>
<asp:Label id="lblUser" runat="server" Text="<%# ((AccountModel)Container.DataItem).UserName %>" />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>后台:
在Page_Load事件中绑定parent控件值protected void parent_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if(e.Item.ItemIndex > -1)
{
获取父Repeater的数据项
AccountModel accountModel = (AccountModel)e.Item.DataItem;
string userName = accountModel.UserName; 查找子Repeater控件
Repeater child = (Repeater)e.Item.FindControl("child");
根据用户名获取子Repeater控件数据
IList dataSource = GetAccounts(userName);
绑定子控件
child.DataSource = dataSource;
child.DataBind();
}
}
注:此法的效率不高,在并发用户少,数据量不大的情况下,可以使用