使用Eval Tags的Bootstrap popover中的ASP Grid

时间:2016-01-14 17:53:15

标签: c# asp.net twitter-bootstrap gridview popover

我有一个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>"

1 个答案:

答案 0 :(得分:0)

你的语法确实有些偏差。请记住,<%# %>中的所有内容都应该是有效的C#,因此'Label2'是无效的文字。要解决这个问题,请交换引号:

text='<%# Eval("Label1") %>'

<强>更新 错过了GridView本身被data-content属性的单引号包围的事实。即使这个标记看起来很奇怪,也有办法让它工作,在任何地方使用双引号和escaping appropriately

text="<%# Eval(&quot;Label1&quot;) %>"