Javascript 如何使按钮单击事件处理程序工作?

Javascript 如何使按钮单击事件处理程序工作?,javascript,asp.net,gridview,modal-dialog,Javascript,Asp.net,Gridview,Modal Dialog,我正在将gridView链接按钮链接到模式弹出窗口,如下所示: <asp:TemplateField HeaderText="Analyze"> <ItemTemplate> <asp:LinkButton Text="Analyze" ID="lnkView" runat="server" ControlStyle-Fo

我正在将gridView链接按钮链接到模式弹出窗口,如下所示:

 <asp:TemplateField HeaderText="Analyze">
                                 <ItemTemplate>
                                       <asp:LinkButton Text="Analyze" ID="lnkView" runat="server" ControlStyle-Font-Underline="true"  />
                                 </ItemTemplate>
                             </asp:TemplateField>
 <div id="dialog" style="display: none">
            <div style="text-align:center">
                 <asp:Label ID="Label12" runat="server" Text="Result Id:" />
                <asp:TextBox ID="tb" runat="server" Value="102" />
            </div>
            <br />
            <div>
                <asp:Label runat="server" Text="Bug Id:" />
                <asp:TextBox runat="server" id="bugidtb" Value="Enter Bug Id:"/>
            </div>
            <br />
            <div>
                <asp:Label ID="Label11" runat="server" Text="Bug DB:" />
                <asp:DropDownList runat="server" Width="250px" ID="Bugdb" >
                    <asp:ListItem>OneBug</asp:ListItem>
                    <asp:ListItem>Jira</asp:ListItem>
                </asp:DropDownList>
            </div>
            <br/><br/>
            <asp:Button runat="server" Text="OK" OnClick="ModalOK_Click"/>
            <asp:Button runat="server" Text="Cancel" />
            <asp:Label runat="server" ID="test" Text="hello world" />

        </div>


      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js" type="text/javascript"></script>
        <link href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/themes/start/jquery-ui.css"
            rel="stylesheet" type="text/css" />
        <script type="text/javascript">
            $(document).on("click", "[id*=lnkView]", function () {

                $("#resultId").html($(".ResultId", $(this).closest("tr")).html());
                $("#dialog").dialog({
                    title: "Analyze Result",
                    modal: true
                });
                return false;
            });
        </script>

模式弹出窗口的代码如下所示:

 <asp:TemplateField HeaderText="Analyze">
                                 <ItemTemplate>
                                       <asp:LinkButton Text="Analyze" ID="lnkView" runat="server" ControlStyle-Font-Underline="true"  />
                                 </ItemTemplate>
                             </asp:TemplateField>
 <div id="dialog" style="display: none">
            <div style="text-align:center">
                 <asp:Label ID="Label12" runat="server" Text="Result Id:" />
                <asp:TextBox ID="tb" runat="server" Value="102" />
            </div>
            <br />
            <div>
                <asp:Label runat="server" Text="Bug Id:" />
                <asp:TextBox runat="server" id="bugidtb" Value="Enter Bug Id:"/>
            </div>
            <br />
            <div>
                <asp:Label ID="Label11" runat="server" Text="Bug DB:" />
                <asp:DropDownList runat="server" Width="250px" ID="Bugdb" >
                    <asp:ListItem>OneBug</asp:ListItem>
                    <asp:ListItem>Jira</asp:ListItem>
                </asp:DropDownList>
            </div>
            <br/><br/>
            <asp:Button runat="server" Text="OK" OnClick="ModalOK_Click"/>
            <asp:Button runat="server" Text="Cancel" />
            <asp:Label runat="server" ID="test" Text="hello world" />

        </div>


      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js" type="text/javascript"></script>
        <link href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/themes/start/jquery-ui.css"
            rel="stylesheet" type="text/css" />
        <script type="text/javascript">
            $(document).on("click", "[id*=lnkView]", function () {

                $("#resultId").html($(".ResultId", $(this).closest("tr")).html());
                $("#dialog").dialog({
                    title: "Analyze Result",
                    modal: true
                });
                return false;
            });
        </script>



一只虫子 吉拉

$(文档)。在(“单击”、“[id*=lnkView]”上,函数(){ $(“#resultId”).html($(“.resultId”,$(this.closest(“tr”).html()); $(“#对话框”)。对话框({ 标题:“分析结果”, 莫代尔:对 }); 返回false; });
未执行模式中的按钮单击事件处理程序代码。 我调试后发现事件处理程序根本没有响应


如何使其工作?

可能的问题是jquery脚本找不到id,这就是事件未触发的原因

尝试使用

     '<%=lnkView.ClientID%>' 
您还可以使用
结束于
jquery选择器,使用
输入[id$='lnkView']
获取服务器生成的id。但是,
$(“[id$=lnkView]”)将选择多个元素,因此,如果您将相同的id分配给多个元素,并且希望遍历所有元素,则第一种情况将无法正常工作


但我会选择第一种方法。由于服务器控件id生成模式是您不希望依赖的。

最好尝试调用链接按钮标记本身中的click事件,因为javascript无法识别放置在gridview中的按钮、链接按钮、图像等

function Analyse(){

            $("#resultId").html($(".ResultId", $(this).closest("tr")).html());
            $("#dialog").dialog({
                title: "Analyze Result",
                modal: true
            });
            return false;
        }

将属性OnClientClick=“analysis()”添加到链接按钮中

尝试将选择器更改为
“input[id$='lnkView'”
接受帮助您关闭问题的答案。如果我这样做,当我单击链接按钮时,模式会出现一秒钟,然后再次消失。请尝试OnClientClick=“return analysis()”