【问题标题】:ASP.NET: The server tag is not well formedASP.NET:服务器标记格式不正确
【发布时间】:2023-03-19 11:45:02
【问题描述】:

一段时间以来,我一直在尝试将progressBar 加入我的GridView。不幸的是没有成功。我目前有以下内容:

<asp:GridView ID="gvShow" runat="server" AutoGenerateColumns="False" DataKeyNames="Progress" Width="100%">
    <Columns>
        <asp:BoundField DataField="Progress" HeaderText="Progress" />
        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:Literal ID="lbProgress" runat="server" Text="<div class='progress'><div class='progress-bar' role='progressbar' aria-valuenow='<%#Eval("Progress") %>' aria-valuemin='0' aria-valuemax='100' style='width: 60%;'><span class='sr-only'>60% Complete</span></div></div>"></asp:Literal>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

导致解析器错误(服务器标签格式不正确。)。如果我用任何值替换 eval ,它就可以正常工作。我想我在这里遗漏了一些东西,但我真的找不到。

【问题讨论】:

  • 你为什么在这里使用 Literal?

标签: c# asp.net gridview


【解决方案1】:

由于某种原因,您的所有标记都是文字控件的文本。所以你有引号的问题,因为你需要Text=""Eval的双引号。

我个人认为没有理由在这里使用 Literal,您可以按原样使用标记,问题就会消失:

<ItemTemplate>
    <div class='progress'>
        <div class='progress-bar' role='progressbar' aria-valuenow='<%#Eval("Progress") %>' aria-valuemin='0' aria-valuemax='100' style='width: 60%;'>
            <span class='sr-only'>60% Complete</span>
        </div>
    </div>
</ItemTemplate>

【讨论】:

  • 感谢您的回答。出于某种原因,我认为 ItemTemplate 需要一个 ASP 控件。转义这些引号非常困难。
【解决方案2】:

你必须使用 Eval 方法而不是 Text 方法。

<ItemTemplate>
<div class='progress'>
    <div class='progress-bar' role='progressbar' aria-valuenow='<%#Eval("Progress") %>' aria-valuemin='0' aria-valuemax='100' style='width: 60%;'>
        <span class='sr-only'>60% Complete</span>
    </div>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    相关资源
    最近更新 更多