0

如何通过鼠标悬停从 ASP.NET gridview 标签触发 jQuery 对话框?我试过这个但它不起作用:

ASP 标记

 <asp:GridView ID="gvMain2" runat="server">
   <Columns>
     <asp:TemplateField>
       <ItemTemplate>
          <table class="tg-table-plain" style="width:100%">
             <tr>
                 <td><asp:Label ID="GRID_LBL" class="GRID_LBL" 
                      runat="server" Text='<%# Eval("Some_text") %>'></asp:Label>
                 </td>
             </tr>
          </table>
       </ItemTemplate>
     </asp:TemplateField>
   </Columns>
</asp:GridView>

JavaScript

$(function () {
    $("#dialog").dialog({
        autoOpen: false,
        show: {
            effect: "blind",
            duration: 1000
        },
        hide: {
            effect: "explode",
            duration: 1000
        }
    });

    $("#GRID_LBL").hover(function () {
        $("#dialog").dialog("open");
    });
});
4

3 回答 3

0

如果该标签存在于 gridview 的每一行中,那么您不能为所有这些行提供相同的 ID,并且您需要将列模板中 ASP:label 的 CSSclass 设置为类似“GridLabel”的内容,然后在 jQuery 代码中附加像这样按他们的类对所有标签的悬停效果

$(".GridLabel").hover(function () {
    $("#dialog").dialog("open");
});
于 2013-08-28T11:12:42.640 回答
0

希望您已将以下脚本添加到您的脑海中

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

希望您只有一个带有 id 的 Gridview 标签 GRID_LBL

这是工作演示

于 2013-08-28T11:42:23.377 回答
0

问题在于GRID_LBL生成的代码中不是标签的 ID,因为 ASP.NET 会生成自己的 ID。由于此标签位于 GridView 中,因此在 Javascript 中设置ClientIDMode或编写该标签ClientID在此处不起作用。您应该使用类而不是 ID,生成的代码中的类是相同的:

<asp:Label ID="GRID_LBL" CssClass="GRID_LBL_CLASS"
                      runat="server" Text='<%# Eval("Some_text") %>'></asp:Label>

   $(".GRID_LBL_CLASS").hover(function () {
       $("#dialog").dialog("open");
   });
于 2013-08-28T12:53:04.017 回答