【发布时间】:2014-03-27 16:21:31
【问题描述】:
asp.net 转发器将额外的<li></li> 插入每个<ItemTemplate>。它对表做同样的事情。它插入一个额外的<tr></tr>。与 div 相同。基本上,我放入 ItemTemplate 的任何元素都会出现重复。
这是我的代码。
这是构建litData aspx.vb 文件的一部分:
If item.ItemType = ListItemType.Item Then
Dim drv As System.Data.DataRowView = DirectCast((e.Item.DataItem), System.Data.DataRowView)
Dim strLinkValue As String = drv.Row("ReturnVal").ToString()
Dim Literal1 As Literal = DirectCast(item.FindControl("litData"), Literal)
Literal1.Text = "<a href=" & strQString.ToLower().Replace("/default.aspx", "") & strLinkValue & "/default.aspx>Hello World" + strLinkValue + "</a>"
End If
这是在 .aspx 文件中:
<asp:Repeater ID="rptData" runat="server" OnItemDataBound="rptData_OnItemDataBound" EnableViewState="false">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><asp:Literal ID="litData" runat="server" EnableViewState="false"></asp:Literal></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
我希望它能够渲染...
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
实际渲染的是什么...
<ul>
<li>Item 1</li>
<li></li>
<li>Item 2</li>
<li></li>
<li>Item 3</li>
<li></li>
</ul>
【问题讨论】:
-
你是如何对它进行数据绑定的?
-
@Andrei
OnItemDataBound="rptData_OnItemDataBound"在后面的代码中我有rptData.DataSource = objDS和下一行,rptData.DataBind()。我对 asp.net 不是很熟悉 :) 我主要从事这个工作,只是清理 html。 -
OnItemDataBound 是在项目数据绑定后执行的代码。没有必要在那里重新绑定它。