我正在开发一个asp.net项目。我使用了两个嵌套的中继器来显示状态和对该状态的评论。嵌套转发器绑定到具有两个表的数据源。现在当我#Eval第二个表的列值时,它显示不包含属性名称错误。
<ItemTemplate>
<div style="height:285px;">
<img src='ProfilePic/<%#Eval("ProfilePic")%>' width="100" height="100" alt="" />
<asp:LinkButton ID="lnkfrndname" OnClick="lnkfrndname_Click" CommandName="frndname" CommandArgument='<%#Eval("UserName") %>' runat="server"> <u><%#Eval("Firstname")%> <%#Eval("LastName")%></u></asp:LinkButton>
<br />
<%#Eval("StatusText")%>
<br />
<asp:HiddenField ID="hfstatusid" Value='<%# Eval("StatusId") %>' runat="<asp:Repeater ID="replike" runat="server">
< <asp:Literal ID="ltlstatuscomm" Text='<%#Eval("CommentText") %>' runat="server"></asp:Literal>
</ItemTemplate>
</ </ItemTemplate>
</asp:Repeater>
的.cs
protected void rephomecontent_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
HiddenField hf = e.Item.FindControl("hfstatusid") as HiddenField;
if (hf != null)
{
Repeater rep = e.Item.FindControl("replike") as Repeater;
if (rep != null)
{
int statusid = int.Parse(hf.Value.ToString());
DataSet ds = new StatusLikeInfoAction().ViewStatusLike(statusid);
rep.DataSource = ds;
rep.DataBind();
}
}
}
}
答案 0 :(得分:0)
如果您使用Datatable绑定转发器而不是包含多个表的DataSet,那就很好了。
首先分析是否要绑定
ds.Tables [0]
或
ds.Tables [1]
然后按如下方式绑定转发器
rep.DataSource = ds.Tables[0];
或
rep.DataSource = ds.Tables[1];
根据您的选择