DataTable and ASP.NET Repeater
本文关键字:Repeater NET ASP and DataTable | 更新日期: 2023-09-27 17:58:54
我正在将DataTable绑定到中继器。然而,当我运行aspx页面时,它并没有评估Eval语句并将其作为显示在页面上
<<%# Eval("Name").ToString() %> Posted by: <<%# Eval("UserName").ToString() %>
<<%# Eval("Name").ToString() %> Posted by: <<%# Eval("UserName").ToString() %>
<<%# Eval("Name").ToString() %> Posted by: <<%# Eval("UserName").ToString() %>
它还将其分解为3行。这也不是我所期望的。我以为它会像一样显示跨度
我已经取出.ToString来检查是否是它导致了问题。但事实并非如此。
下面是我的中继器
<asp:Repeater ID="First" runat="server">
<ItemTemplate>
<div class="ItemDiv">
<span class="ItemLeft"></span>
<span class="ItemCentre">
<asp:Label ID="Name" runat="server" Text='<<%# Eval("Name").ToString() %>'></asp:Label>
</span>
<span class="ItemRight">
<asp:Label ID="UserName" runat="server" Text='<<%# Eval("UserName").ToString() %>'></asp:Label>
</span>
</div>
</ItemTemplate>
</asp:Repeater>
要绑定的代码如下:
public void dataLoad()
{
DataTable Data = loadData(1,1,1);
if (Data.Rows.Count < 10)
{
// Only populate the data from datatable
First.DataSource = Data;
First.DataBind();
Second.Visible = false;
noData.Visible = true;
}
我已经更改了上面示例中的一些名称
在调试信息中,我可以看到我的DataTable使用了正确的列名,并且这些列名与我的eval语句匹配。
我知道我以一种相当奇怪的方式创建了这个,从我所读到的和网上研究的内容来看,使用表格而不是Divs/或Spans更常见。因此,我意识到这可能是其核心问题。
我不明白为什么会有什么不同。
从eval语句中删除<<
。应该是:
<div class="ItemDiv">
<span class="ItemLeft"></span>
<span class="ItemCentre">
<asp:Label ID="Name" runat="server" Text='<%# Eval("Name").ToString() %>'></asp:Label>
</span>
<span class="ItemRight">
<asp:Label ID="UserName" runat="server" Text='<%# Eval("UserName").ToString() %>'></asp:Label>
</span>
</div>