我有一个ASP Gridview,其中有一个列,其中包含一个用于打开弹出窗口的按钮。在popover中我想填充一个ASP表或ASP Gridview来显示隐藏的相关数据。我能够打开popover并显示硬编码数据。但是当我想使用Eval()标记使数据结果动态时,语法无法读取text =“<%#Eval('Label1')%>”对象内字符串中的标签。
目的是在一个页面加载上加载整个数据集和弹出框数据。如果可能的话,我想避免重新加载。它似乎无法处理字符串中的<%,有没有办法解决这个问题?
欢迎任何建议。提前谢谢。
示例代码:
<asp:Button ID="Button3"
runat="server"
class="btn btn-info btn-xs"
Text="+"
OnClientClick="return false;"
data-toggle="popover"
data-trigger="focus"
TabIndex="0"
data-placement="right"
title="Owner Change"
UseSubmitBehavior="true"
data-content='<asp:Gridview runat="server" ID="gdvTest">
<Columns>
<asp:TemplateField HeaderText="Label One">
<asp:ItemTemplate>
<asp:Label runat="server" text="<%# Eval('Label1') %>" />
</asp:ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Label Two">
<asp:ItemTemplate>
<asp:Label runat="server" text="<%# Eval('Label2') %>" />
</asp:ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:Gridview>
/>
更新:我还尝试使用ASP Table,但是我的类没有识别我试图用来动态填充Label的ID。
...data-content="<asp:Table><asp:TableRow><asp:TableHeaderCell text='TestHeader'><asp:Label runat='server' ID='lblTest' style='color:Red'></asp:TableHeaderCell></asp:TableRow></asp:Table></asp:Gridview>"
答案 0 :(得分:0)
你的语法确实有些偏差。请记住,<%# %>
中的所有内容都应该是有效的C#,因此'Label2'
是无效的文字。要解决这个问题,请交换引号:
text='<%# Eval("Label1") %>'
<强>更新强>
错过了GridView本身被data-content
属性的单引号包围的事实。即使这个标记看起来很奇怪,也有办法让它工作,在任何地方使用双引号和escaping appropriately:
text="<%# Eval("Label1") %>"