Asp.net 使用字典绑定转发器<;字符串、字典<;int,[object]>;
我是.NET新手,所以我正在努力解决这个问题。我有一个内容页,带有转发器控件。我有一本字典,这是一本Asp.net 使用字典绑定转发器<;字符串、字典<;int,[object]>;,asp.net,dictionary,repeater,eval,bind,Asp.net,Dictionary,Repeater,Eval,Bind,我是.NET新手,所以我正在努力解决这个问题。我有一个内容页,带有转发器控件。我有一本字典,这是一本字典。我希望中继器控件内的控件的值可以从对象属性中获取-候选名称,应该是object.CandName,候选电话应该是object.phone等等 我不知道如何对这类词典使用Eval。大多数示例都指向Eval(“Value”),但它没有为我提供正确的值。请帮忙 <asp:Content ID="Content2" ContentPlaceHolderID="content" Runat="S
字典。我希望中继器控件内的控件的值可以从对象属性中获取-候选名称,应该是object.CandName
,候选电话应该是object.phone
等等
我不知道如何对这类词典使用Eval
。大多数示例都指向Eval(“Value”)
,但它没有为我提供正确的值。请帮忙
<asp:Content ID="Content2" ContentPlaceHolderID="content" Runat="Server">
<div id="rcontent">
<table>
<tr>
<td>
<asp:Label ID="lblerror" runat="server" Text="" Visible="true" CssClass="alert"></asp:Label>
</td>
</tr>
</table>
<div id ="rptdiv">
<asp:Repeater ID="Repeater1" runat="server" EnableViewState="false">
<ItemTemplate>
<div id="Div3">
<table class="GridViewStyleNoBorder" width=750px cellspacing="0" border="0" >
<tr>
<td class="PagerStyle" colspan="4">
<asp:Label ID="lblName" Runat="server"
Text='<%= Need the value of the [object].objectproperty from dictionary here %>' />
</td>
</tr>
</table>
</div>
我是否应该使用from codebehind,我是否可以在aspx页面中不执行Eval(“”)
提前感谢您的帮助。您不能只使用一个中继器。由于容器中有容器,因此中继器中需要一个中继器:
<asp:Repeater ID="Repeater1" runat="server" EnableViewState="false">
<ItemTemplate>
<div id="Div3">
<table class="GridViewStyleNoBorder" width=750px cellspacing="0" border="0" >
<asp:Repeater ID="Repeater2" runat="server" DataSource='<%# Eval("Value")' >
<ItemTemplate>
<tr>
<td class="PagerStyle" colspan="4">
<asp:Label ID="lblName" Runat="server"
Text='<%# Eval("Name") %>' />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
</ItemTemplate>
</asp:Repeater>
如果CandIntDetails
是一本字典
,则需要从中提取要用作中继器数据源的特定集合。原因是您希望呈现一组InterviewFeedback
对象,而CandIntDetails
不是CandIntDetails
可能看起来像这样:
{
46: {
0: [InterviewFeedback],
1: [InterviewFeedback],
2: [InterviewFeedback]
}
}
Repeater1.DataSource = CandIntDetails[ReqCategoryID].Values;
从你的帖子中不清楚内部或外部字典的键是什么,所以这是推测性的。如果外部键是类别ID(不确定为什么GetCandidatesforReqCategory
会返回类似的结果),并且如果您不关心内部字典键,则可以这样提取数据源:
{
46: {
0: [InterviewFeedback],
1: [InterviewFeedback],
2: [InterviewFeedback]
}
}
Repeater1.DataSource = CandIntDetails[ReqCategoryID].Values;
这将使您的数据源成为InterviewFeedback
对象的直接集合。一旦这是您的数据源,您就可以Eval
访问InterviewFeedback
对象的属性。您应该更准确地描述数据的格式。在某一点上,你说这是一本词典
,在另一点上,你暗示你正在使用一本词典
。字典到底包含什么?您希望输出的内容是什么?您希望按字典键对内容进行分组,还是希望访问特定键的所有值?它是:dictionary(int,dictionary(int,InterviewFeedback));我想访问和显示特定键的所有值-每行都需要访问和显示所有值。感谢您的建议。我添加了另一个Repeater,但无法直接访问该值,因为Dictionary的值是一个业务对象。所以我在代码背后做了这件事。我能够获得显示的记录值。但它只显示一条记录。它总共有3条记录,但显示第一行,但不显示其余的。我是否应该在某个地方循环,我是否遗漏了什么。谢谢你的建议。现在工作。