【问题标题】:Why is this asp repeater inserting an extra <li> (or <tr>) into every "ItemTemplate"为什么这个asp中继器在每个“ItemTemplate”中插入一个额外的<li>(或<tr>)
【发布时间】:2014-03-27 16:21:31
【问题描述】:

asp.net 转发器将额外的&lt;li&gt;&lt;/li&gt; 插入每个&lt;ItemTemplate&gt;。它对表做同样的事情。它插入一个额外的&lt;tr&gt;&lt;/tr&gt;。与 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 是在项目数据绑定后执行的代码。没有必要在那里重新绑定它。

标签: html asp.net webforms


【解决方案1】:

根据评论,您将数据绑定到 ItemDataBound 处理程序内的转发器。这不是正确的做法。将您的数据绑定移动到Page_Load

protected void Page_Load(object sender, EventArgs e)
{
    // other code

    if (!IsPostBack)
    {
        rptData.DataSource = objDS;
        rptData.DataBind();
    }
}

而且您可能不再需要 Item Bound 处理程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2018-12-29
    • 2015-10-13
    • 1970-01-01
    相关资源
    最近更新 更多