C# ASP.NET:服务器标记的格式不正确
一段时间以来,我一直试图在GridView中添加一个progressBar。不幸的是没有成功。我目前有以下情况:C# ASP.NET:服务器标记的格式不正确,c#,asp.net,gridview,C#,Asp.net,Gridview,一段时间以来,我一直试图在GridView中添加一个progressBar。不幸的是没有成功。我目前有以下情况: <asp:GridView ID="gvShow" runat="server" AutoGenerateColumns="False" DataKeyNames="Progress" Width="100%"> <Columns> <asp:BoundField DataField="Progress" HeaderText="
<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,它将不会出现任何问题。我想我错过了一些东西,但我真的找不到 出于某种原因,所有标记都是文本控件的文本。所以引号有问题,因为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>
您必须使用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>
你为什么在这里使用文字?谢谢你的回答。出于某种原因,我认为ItemTemplate需要一个ASP控件。逃避这些引用是非常困难的。