代码如下:
<asp:Repeater ID="classid" runat="server">
<ItemTemplate>
<div class="btitle"><%#Eval("cn_classname") %></div>
<div>
<asp:Repeater ID="nclassid" runat="server" DataSource='<%#bind2(Eval("leseno_id")) %>' >
<ItemTemplate>
<a href="product.aspx?classid=<%#Eval("leseno_id") %>&nclassid=<%#Eval("[\"leseno_id\"]")%>"><%#Eval("cn_classname") %></a>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
问题是classid,nclassid是邦定同一个表,,而nclassid是根据classid的ID来邦定,我如果在nclassid里面取的classid的leseno_id的值呢
<asp:Repeater ID="classid" runat="server">
<ItemTemplate>
<div class="btitle"><%#Eval("cn_classname") %></div>
<div>
<asp:Repeater ID="nclassid" runat="server" DataSource='<%#bind2(Eval("leseno_id")) %>' >
<ItemTemplate>
<a href="product.aspx?classid=<%#Eval("leseno_id") %>&nclassid=<%#Eval("[\"leseno_id\"]")%>"><%#Eval("cn_classname") %></a>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
问题是classid,nclassid是邦定同一个表,,而nclassid是根据classid的ID来邦定,我如果在nclassid里面取的classid的leseno_id的值呢
参照:http://blog.csdn.net/baby97/archive/2009/06/06/4246900.aspx
绑定不是问题,,问题是我在nclassid里如何取的classid 里的leseno_id的值,,因为nclassid里有也leseno_id的值这就是nclassid里绑定了
<asp:Repeater ID="nclassid" runat="server" DataSource='<%#bind2(Eval("leseno_id")) %>' >
<asp:Repeater ID="Repeater2" runat="server" DataSource='<%# GetDetails(Convert.ToInt32(Eval("ID"))) %>'>
<ItemTemplate>
<%# ((Label)((RepeaterItem)(Container.NamingContainer.NamingContainer)).FindControl("Label1")).Text %>
</ItemTemplate>
</asp:Repeater>
protected void rptTop_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rpColumnNews = (Repeater)e.Item.FindControl("rptSecentContent");
ClassTreeInfo rowv = (ClassTreeInfo)e.Item.DataItem; string strId = Convert.ToString(rowv.Id);
rpColumnNews.DataSource = NewsInfo.GetNewsList(int.Parse(strId),10);
rpColumnNews.DataBind();
}
}在ItemDataBound事件里面取ID就行。。
再找你要的控件
<li>
<div>
<a href="bbs/user_info.aspx?name=<%#Server.UrlEncode(Eval("UserName").ToString()) %>" target="_blank"><img alt="<%#Eval("UserName") %>" class="imgt" height="50" src="bbs/files/uploadfaces/<%#Eval("UserFace") %>" onerror="this.src='bbs/files/uploadfaces/userface/noface.gif';" width="60" /></a></div>
<div>
<dl>
<dt><a href="bbs/user_info.aspx?name=<%#Server.UrlEncode(Eval("UserName").ToString()) %>" target="_blank"><%#Eval("UserName") %></a></dt>
<asp:Repeater ID="r_member_list" runat="server"><ItemTemplate><dd><a href="bbs/topic.aspx?topicid=<%#DataBinder.Eval(Container.DataItem,"topicid") %>" class="a" target="_blank"><%#SubStr(Eval("title").ToString(),10) %></a></dd></ItemTemplate></asp:Repeater>
</dl>
</div>
</li>
</ItemTemplate></asp:Repeater>.aspx.cs部分 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
Repeater r = (Repeater)e.Item.FindControl("r_member_list");
DataRowView dr = (DataRowView)e.Item.DataItem;
string strSql = "Select Top 2 topicid,title From dv_topic Where PostUserID='" + dr["UserID"] + "' Order by DateAndTime Desc";
r.DataSource = bc.GetDataSet(strSql, "tbb");
r.DataBind();
}
我估计是你想怎么把所有数据全部绑定(外层Repeater)中,而(内层Repeater)数据也要绑定到,而且
一一对应,是吧?这样做:
Class:
classId;
className;
...
List<Stu> lstStu; Stu:
stuId;
stuName;
...List<Class> lstClass = 数据库中得到/或者模拟一个;repInfo.DataSource = lstClass;
repInfo.DataBind();
ASPX.CS代码public int ReturnID(int id)
{
return {这里接收返回的ID};
//可以通过classid找nclassid
//sql:selct nclassid from table where classid = @classid
}ASPX页面代码: <a href='product.aspx?nclassid=<%# ReturnID(int.Parse(Eval("leseno_id").ToString()))%>'>
<ItemTemplate>
<div class="btitle"><%#Eval("cn_classname") %></div>
<div>
<asp:Repeater ID="nclassid" runat="server" DataSource='<%#bind2(Eval("leseno_id")) %>' >
<ItemTemplate>
<a href="product.aspx?classid=<%#Eval("leseno_id") %>&nclassid=<%#Eval("[\"leseno_id\"]")%>"><%#Eval("cn_classname") %></a>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
问题是classid(repeater的ID叫classid),nclassid(repeater的ID叫nclassid)是邦定同一个表,,而nclassid是根据classid的ID来邦定,我如果在nclassid里面取的 classid的leseno_id的值呢
下回可别这么问,很难理解。你可以这样问,有两个repeater, 绑定的是同一张表 是嵌套关系 id 是它们之间的关联我想在里层的repeater 里获取外层 repeater 的一个指定字段-----------------------------------------------------------------------
答案是<%#((Container.Parent.NamingContainer as RepeaterItem?? new RepeaterItem(0,ListItemType.Item)).DataItem as DataRowView)["leseno_id"] %>as DataRowView 这里 是推测你绑定的是 DataTable如果不是 要换成对应的类型
<asp:Repeater ID="classid" runat="server">
<ItemTemplate>
<div class="btitle"><%#Eval("cn_classname") %></div>
<div>
<asp:Repeater ID="nclassid" runat="server" DataSource='<%#GetSource(Convert.ToInt32(Eval("leseno_id"))) %>' >
<ItemTemplate>
<a href="product.aspx?classid=<%#Eval("leseno_id") %>&nclassid=<%#Eval("[\"leseno_id\"]")%>"><%#Eval("cn_classname") %></a>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
在服务端写一个调回数据的方法