2014-10-10 70 views
0

我一直在尝试将progressBar转换为我的GridView一段时间。可惜没有成功。目前,我有以下几点:(服务器标记的格式不正确)ASP.NET:服务器标记格式不正确

<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,它的工作没有任何问题。我想我在这里失去了一些东西,但我真的找不到它。

+1

你为什么在这里使用文字? – Andrei 2014-10-10 15:17:35

回答

1

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

个人而言,我认为没有理由在这里使用文字,你可以使用标记原样,问题就会迎刃而解:

<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> 
+0

谢谢你的回答。出于某种原因,我认为ItemTemplate预计ASP控制。逃避这些报价非常困难。 – Nick 2014-10-10 15:32:39

-2

你必须使用eval方法,而不是文本的方法。

<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> 
相关问题