C# javascript中未触发按钮事件

C# javascript中未触发按钮事件,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我添加了一个jquery模式弹出窗口来保存特定设备的上传文件。模式弹出,取消按钮工作,但我不知道如何让保存按钮触发onclick事件 这就是我所做的: $(function () { $("#dialogCustUploads").dialog("destroy"); $("#dialogCustUploads").dialog({ title: "Upload Files", autoOpen: fals

我添加了一个jquery模式弹出窗口来保存特定设备的上传文件。模式弹出,取消按钮工作,但我不知道如何让保存按钮触发onclick事件

这就是我所做的:

     $(function () {
        $("#dialogCustUploads").dialog("destroy");
        $("#dialogCustUploads").dialog({
            title: "Upload Files",
            autoOpen: false,
            modal: true,
            resizable: false,
            width: 'auto',
            buttons: {
                Save: function () {
                    $(document.getElementById('<%=btnSave.ClientID %>')).click();
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });
    });

    function showCustUploads() {
        $(function () {
            $("#dialogCustUploads").dialog("open");
                    });
        $(".dialogCustUploads").parent().appendTo($("form:first"));  
    }


    <div id="dialogCustUploads" style="display: none">     
    <table style="width:100%;">
                <tr>
                    <td class="auto-style1">
                        <asp:Label ID="Label16" runat="server" Text="Client"></asp:Label>

                    </td>
                    <td>
                        <asp:Label ID="lblClientUploadName" runat="server"></asp:Label>
                    </td>
                </tr>
                    <tr>
                <td>
                    <asp:Label ID="Label19" runat="server" Text="Certificate no" ></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtCertificateNo" runat="server" Width="410px"></asp:TextBox>
                </td>
            </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label14" runat="server" Text="Upload Option"></asp:Label>
                    </td>
                    <td>
                        <asp:DropDownList ID="lstUploadOption" runat="server" AppendDataBoundItems="True" Width="410px"></asp:DropDownList>
                    </td>
                </tr>
                <tr>
                    <td class="auto-style1">
                        <asp:Label ID="Label18" runat="server" Text="File"></asp:Label>
                    </td>
                    <td>
                        <asp:FileUpload ID="fuPath" runat="server" Width="408px" />
                        <br />
                        <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td class="auto-style1"></td>
                    <td>
                        <asp:Button ID="btnSave" style="display: none;" runat="server" Text="Save" OnClientClick="btnSave_Click"  BackColor="White" />                          
                    </td>
                </tr>
            </table>
</div>
当窗体中断时,按钮显示如下:

    <input type="submit" name="ctl00$MainContent$btnSave" value="Save" onclick="btnSave_Click;" id="btnSave" /> 
这是我试图从脚本调用的单击事件:

    protected void btnSave_Click(object sender, EventArgs e)
    {
        // Before attempting to save the file, verify
        // that the FileUpload control contains a file.
        if (fuPath.HasFile)
        {
            // Get the size in bytes of the file to upload.
            int fileSize = fuPath.PostedFile.ContentLength;

            // Allow only files less than 2,100,000 bytes (approximately 2 MB) to be uploaded.
            if (fileSize < 45497717)
            {
                // Call a helper method routine to save the file.
                //SaveFile(fuPath.PostedFile);
                SaveFile();
                fuPath.Dispose();

                lbljQMessage.Text = "Update successful";
                this.Page.ClientScript.RegisterStartupScript(this.GetType(), "popUpMessage", "showCustUploads();", true);
                //modalCustUploads.Show();
            }
            else
                lblMessage.Text = "You did not specify a file to upload.";
        }
    }
应该是:

     function showCustUploads() {
        $(function () {
            $("#dialogCustUploads").dialog("open");
                    }); 
    }
     $(function () {
        $("#dialogCustUploads").dialog("destroy");
        var dlgUploads = $("#dialogCustUploads").dialog({
            title: "Upload Files",
            autoOpen: false,
            modal: true,
            resizable: false,
            width: 'auto',
            buttons: {
                Save: function () {
                  //  __doPostBack("<%=btnSave.UniqueID %>", "");
                    $($get("<%=btnSave.UniqueID %>")).click();
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });
        dlgUploads.parent().appendTo(jQuery("form:first"));
    });
而不是这个:

     function showCustUploads() {
        $(function () {
            $("#dialogCustUploads").dialog("open");
                    });
        $(".dialogCustUploads").parent().appendTo($("form:first"));  
    }
     $(function () {
        $("#dialogCustUploads").dialog("destroy");
         $("#dialogCustUploads").dialog({
            title: "Upload Files",
            autoOpen: false,
            modal: true,
            resizable: false,
            width: 'auto',
            buttons: {
                Save: function () {
                  //  __doPostBack("<%=btnSave.UniqueID %>", "");
                    $($get("<%=btnSave.UniqueID %>")).click();
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });
    });
$(函数(){
$(“#dialogCustUploads”).dialog(“销毁”);
$(“#dialogCustUploads”).dialog({
标题:“上传文件”,
自动打开:错误,
莫代尔:是的,
可调整大小:false,
宽度:“自动”,
按钮:{
保存:函数(){
//doPostBack(“,”);
$($get(“”)。单击();
},
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
});
应该是:

     function showCustUploads() {
        $(function () {
            $("#dialogCustUploads").dialog("open");
                    }); 
    }
     $(function () {
        $("#dialogCustUploads").dialog("destroy");
        var dlgUploads = $("#dialogCustUploads").dialog({
            title: "Upload Files",
            autoOpen: false,
            modal: true,
            resizable: false,
            width: 'auto',
            buttons: {
                Save: function () {
                  //  __doPostBack("<%=btnSave.UniqueID %>", "");
                    $($get("<%=btnSave.UniqueID %>")).click();
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });
        dlgUploads.parent().appendTo(jQuery("form:first"));
    });
$(函数(){
$(“#dialogCustUploads”).dialog(“销毁”);
var dlgUploads=$(“#dialogCustUploads”).dialog({
标题:“上传文件”,
自动打开:错误,
莫代尔:是的,
可调整大小:false,
宽度:“自动”,
按钮:{
保存:函数(){
//doPostBack(“,”);
$($get(“”)。单击();
},
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
dlgUploads.parent().appendTo(jQuery(“form:first”);
});
谢谢大家的帮助!!!谢谢你

试试这个

$('<%=btnSave.ClientID %>').click();
$('')。单击();
应该是

document.getElementById('<%=btnSave.ClientID %>').click();
document.getElementById(“”)。单击();
反而

$(document.getElementById('<%=btnSave.ClientID %>')).click();
$(document.getElementById(“”))。单击();
因为您使用的是javascript,顺便说一句,jQuery是javascript,但在
$()
中包装将创建jQuery对象,您将两者结合起来。

document.getElementById(“”)。单击();
 document.getElementById('<%=btnSave.ClientID %>').click();

 Or

 $('#<%=btnSave.ClientID %>').click();
或 $('#')。单击();
您做错了:

$(document.getElementById('<%=btnSave.ClientID %>')).click();
在jquery中:

$('#btnSave').click();
或在javascript中:

document.getElementById('<%=btnSave.ClientID %>').click();
document.getElementById('btnSave').click();
试着使用

   $("#btnSave").click();
$('#')。触发(“单击”)//确保使用“#”作为jQuery选择器的一部分
如果
$(“”)
指的是按钮,您可以通过检查
$(“”)来检查它。长度==1
尝试使用

$(“#”)点击()


并删除按钮的给定内联样式。

OnClientClick
指定要执行的客户端javascript函数,但看起来您正试图使用它来执行服务器端方法
OnClick
将执行服务器端方法:

OnClick="btnSave_Click"

如果您试图实现以下目标:

  • 当用户单击GridView(gvDeviceCalibration)中的上载图像按钮时,用户将显示jquery模式(或弹出窗口)

  • 如果用户单击“取消”,则不执行任何操作;如果用户单击“保存”按钮,则转到代码隐藏事件处理程序“btnSave\u Click”

  • 可能的解决方案(将“gvDeviceCalibration”网格视图中的“上载”模板字段更改为以下内容):

    
    
    在上面的代码中,我们使用Image按钮通过“OnClientClik”事件进行确认,并通过“OnClick”事件进行save方法的代码隐藏调用

    在这种情况下,您不需要使用“SelectCustFiles\u Click”方法或“jquery模式”



    如果出现任何问题,请告诉我

    仅使用jquery或javascript,jquery syntex将$('#')。单击()@user2042152:您能否确认使用简单的“浏览器确认弹出窗口”而不是使用“jquery模式弹出窗口”来请求保存文件的确认?那样的话,我有一个建议。让我知道。@user3240361,是的,我是。。。我以前使用过ajax control toolkit,但由于兼容性问题很多,我必须找到其他东西,只要它与IE 8兼容…@user2042152:检查下面的答案。您好,感谢您的帮助,这会触发事件,但它给我一个错误“Microsoft JScript运行时错误:'btnSave_Click'未定义”?从按钮上卸下OnClientClick。添加$('')。触发器(“单击”);在脚本内部。删除onclientclick并添加上述方法按钮似乎什么都没做…您好,感谢您的帮助,现在单击“保存”按钮会给我一个错误:“Microsoft JScript运行时错误:'btnSave_Click'未定义”。。。你知道吗?客户端点击按钮时发生的事件没有定义删除或添加btnSave_ClickThank的定义我得到它给我回发,但它给我一个完整的回发,在数据到达保存方法之前清除数据?我删除了内联样式,但它给我一个错误:“Microsoft JScript运行时错误:'btnSave_Click'未定义”尝试使用OnClick代替OnClientClick。它仍然没有执行任何操作,我尝试使用:\ doPostBack('btnSave','OnClick'));它关闭了对话框…但仍然没有到达单击事件…您可以共享服务器端和客户端代码以便更好地理解吗。?感谢它给我一个错误:“Microsoft JScript运行时错误:'btnSave_click'未定义”调用警报($('').length)时得到什么?您使用的是哪个版本的jQuery?长度返回为0,我使用以下两个脚本:您只需要一个,我使用第二个。我的最佳选择是使用Chrome开发工具-在Chrome中,只需右键单击按钮并在上下文菜单中说“Inspect element”。选中其中的按钮并将其与ey必须是相同的。嗨,当我检查它提供的元素时:我认为id确实匹配…当我删除OnClientClick并添加Click事件时,什么都没有发生,按钮没有返回任何内容…我可以多次单击按钮,但什么都没有发生…谢谢你的建议
    $(document.getElementById('<%=btnSave.ClientID %>')).click();
    
    $('#<%=btnSave.ClientID %>').click();
    
    document.getElementById('<%=btnSave.ClientID %>').click();
    
    <asp:Button ID="btnSave" style="display: none;" runat="server" Text="Save" OnClientClick="btnSave_Click" ClientIDMode="Static"  BackColor="White" /> 
    
    $('#btnSave').click();
    
    document.getElementById('btnSave').click();
    
       $("#btnSave").click();
    
    $('#<%=btnSave.ClientID %>').trigger("click"); // Make sure you use '#' as part of your jQuery selector
    
    OnClick="btnSave_Click"
    
    <asp:TemplateField HeaderText="Upload">
    <ItemTemplate>
        <asp:ImageButton ID="CustUploadFiles" runat="server" Height="22" BorderStyle="None" BackColor="Transparent" ImageUrl="~/Images/UploadFilesTrans.png" OnClick="btnSave_Click" Width="22" OnClientClick="return confirm('Are you sure you want to Save?')"  /> 
    </ItemTemplate>
    </asp:TemplateField>