【问题标题】:unable to open jquery dialog on a linkbutton click无法在链接按钮单击上打开 jquery 对话框
【发布时间】:2013-09-26 10:04:45
【问题描述】:

请注意,我将 asp.net 与 vb.net 一起使用

jquery:

$("#create")
.button().click(function () {
$("#dialog-form").dialog("open");
});

$("#LinkButton3").click(function () {
        $("#dialog-form").dialog("open");
        return false;
    });

asp:

<asp:TemplateField HeaderText="Edit">
    <ItemTemplate> 
        <asp:LinkButton ID="LinkButton3" runat="server">LinkButton</asp:LinkButton>
    <a href="#" class="table-actions-button ic-table-edit" id="create"></a>
     </ItemTemplate> 
</asp:TemplateField> 

对话框为 a 标签打开,但没有为链接按钮打开,谁能告诉我为什么我的代码不起作用?

【问题讨论】:

标签: jquery asp.net vb.net vb.net-2010


【解决方案1】:

客户端的linkbuttonid 会有所不同,因此请使用ClientID 绑定事件。还将绑定代码放入document.ready。为链接按钮分配一个类,并使用类选择器绑定事件。

HTML

<asp:TemplateField HeaderText="Edit">
    <ItemTemplate> 
        <asp:LinkButton ID="LinkButton3" runat="server" class="someclass">LinkButton</asp:LinkButton>    <a href="#" class="table-actions-button ic-table-edit" id="create"></a>
     </ItemTemplate> 
</asp:TemplateField> 

Javascript

$('.someclass').click(function () {
    $("#dialog-form").dialog("open");
    return false;
});

如果您需要使用 id 进行选择,请使用以通配符开头的属性选择器。

$('[id=^LinkButton3]').click(function () {
    $("#dialog-form").dialog("open");
    return false;
});

【讨论】:

    【解决方案2】:

    使用ClientID 像这样在 jquery 中获得服务器控制。

      var create= "#<%=create.ClientID%>";
        $(create).on('click', function() { 
          $("#dialog-form").dialog("open");
        });
    

    不要忘记在 document.ready 中包含 js 文件和 js 代码。

    【讨论】:

      【解决方案3】:

      试试这个

      将 UseSubmitBehavior="false" 添加到您的 asp 链接按钮

      你的html

      <asp:TemplateField HeaderText="Edit">
          <ItemTemplate> 
              <asp:LinkButton ID="LinkButton3" runat="server" UseSubmitBehavior="false">LinkButton</asp:LinkButton>
          <a href="#" class="table-actions-button ic-table-edit" id="create"></a>
           </ItemTemplate> 
      </asp:TemplateField> 
      

      【讨论】:

        【解决方案4】:

        LinkButton 是导致postback 的服务器端asp.net 控件。另一点是您没有使用它更改的控件的正确 ID。试试 $('#&lt;%=LinkButton3.ClientID%&gt;').

        【讨论】:

          【解决方案5】:

          用这个替换你的链接按钮

          <asp:LinkButton ClientIDMode="Static" ID="LinkButton3" runat="server">LinkButton</asp:LinkButton>
          

          看到这个:

          ClientIDMode="静态"

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-06-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多