对话框中的asp按钮不处理点击事件

时间:2013-09-26 13:19:32

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

VB:

 Protected Sub edit_content_Click(sender As Object, e As System.EventArgs) Handles edit_content.Click
    MsgBox("dasfaf")
End Sub

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-user"></a>
   </ItemTemplate> 
  </asp:TemplateField> 


 <div id="dialog-form" title="Edit Content" style="width:1001px;">
 <div>
    <asp:Button ID="edit_content" runat="server" Text="Edit Content" class="buttons" />
</div>
</div>

jquery的:

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

我的问题是我在jquery表单中放了一个asp按钮,当点击按钮时,在vb中做一些代码...但问题是,当我点击按钮时它不会去点击事件...如果我把按钮放在对话框外面一切正常......但我需要在对话框中...

那我怎么能管理呢?

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您需要将jQuery更改为:

 $("#create-user").click(
    function () 
    {
        var dlg = $("#dialog-form").dialog();
        dlg.parent().appendTo($("form:first"));
    });

我已经测试过,它正确地调用了按钮点击事件服务器端。

更新:以下是我用来测试此内容的完整页面,这是在ASP.net应用程序中创建的默认页面。

<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="false"
    CodeFile="Default.aspx.vb" Inherits="_Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <script type="text/javascript" src="http://codeorigin.jquery.com/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="http://codeorigin.jquery.com/ui/1.9.2/jquery-ui.js"></script>

    <input id="create-user" type="button" value="button" />

    <div id="dialog-form" title="Edit Content" style="width:1001px;">
        <div>
            <asp:Button ID="Button1" runat="server" Text="Button" />
        </div>
    </div>

     <script type="text/javascript">
         $("#create-user").click(
            function () {
                var dlg = $("#dialog-form").dialog();
                dlg.parent().appendTo($("form:first"));
            });
    </script>

</asp:Content>

代码背后:

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click

    End Sub
End Class

答案 1 :(得分:0)

看起来这是一个问题。

虽然有一种解决方法。

将以下Javscript代码添加到页面/控件。

 function Test2() {
        <%=Page.ClientScript.GetPostBackEventReference(edit_content, "")%> 

    }

在你的html中添加javascript调用: -

 <asp:Button ID="edit_content" runat="server"  OnClientClick="return Test2();" Text="Edit Content"  class="buttons" />

它应该有用。