【问题标题】:Why my server side code is not firing on ASP.net Button click?为什么我的服务器端代码没有在 ASP.net 按钮点击上触发?
【发布时间】:2017-08-24 00:07:16
【问题描述】:

我不明白为什么我的服务器端没有执行。

这是我的代码

ASP 代码

<div class="row" style="padding-top:20px;">
    <div class="col-lg-4">
        <input id="btnSave" type="button" class="btn btn-info"  value="Save" />
        <input id="btnLoad" type="button" class="btn btn-info"  value="Load" />

         <%-- SAVE DIALOG  --%>
         <div id="saveDialog" title="Basic dialog">
         <div class="row">
             <div class="col-lg-4">
                 <asp:Label ID="lblFileName" CssClass="control-label" runat="server" Text="File Name"></asp:Label>
             </div>
             <div class="col-lg-6">
                 <asp:TextBox ID="txtFileName" CssClass="form-control" runat="server"></asp:TextBox>
             </div>
         </div>
         <div class="row">
             <div class="col-lg-12" style="text-align:center;">
                 <asp:Label ID="lblSaveErrorMsg" runat="server" Text="" ForeColor="Red"></asp:Label>
             </div>
         </div>
         <div class="row" style="padding-top:10px;">
             <div class="col-lg-12" style="text-align:center;">
                <asp:Button ID="btnSaveFile" runat="server" Text="Save" OnClick="btnSaveFile_Click"/>
                                
             </div>
         </div>
     </div>                   
</div>

服务器端代码

protected void btnSaveFile_Click(object sender, EventArgs e)
    {
        string cs = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;

        using (SqlConnection con = new SqlConnection(cs))
        {
            byte[] byteArray = Encoding.UTF8.GetBytes(ASPxPivotGrid1.SaveLayoutToString());
            MemoryStream stream = new MemoryStream(byteArray);

            DateTime currentDate = DateTime.Now;

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = "INSERT INTO ReportSave(UserID,ReportName,UserFileName,ReportData,Time,ReportFilter)VALUES(@UserID,@ReportName,@UserFileName,@ReportData,@Time,@ReportFilter);";
            
            cmd.Parameters.AddWithValue("@UserID", UserID);
            cmd.Parameters.AddWithValue("@ReportName", ReportName);
            cmd.Parameters.AddWithValue("@UserFileName", txtFileName.Text);
            cmd.Parameters.AddWithValue("@ReportData", stream);
            cmd.Parameters.AddWithValue("@Time", currentDate);
            cmd.Parameters.AddWithValue("@ReportFilter", txtFilterRecord.Text);

            con.Open();
            cmd.ExecuteNonQuery();

            //string message = "Your details have been saved successfully.";
            //string script = "window.onload = function(){ alert('";
            //script += message;
            //script += "')};";
            //ClientScript.RegisterStartupScript(this.GetType(), "SuccessMessage", script, true);
        }
    }

注意:

它没有显示任何错误消息,也没有重新加载页面。这很奇怪。

我调用 jquery 函数,在它执行之后它也从不调用服务器代码。出于测试目的,我删除了此按钮的整个 jquery 代码。所以现在这个按钮没有 Jquery 功能。但是我还是不能调用服务器端代码,为什么???

更新

我发现了一些东西,我在表单上有一个按钮叫btnSave,一旦用户点击它就会调用

$('#btnSave').click(function () {
    $('#saveDialog').dialog();
});

重要提示:然后会出现对话框。在该对话框中,我添加了该按钮btnSaveFile。但是当我在对话框之外添加这个按钮时,它正在调用服务器端代码。

【问题讨论】:

  • 到目前为止,您的代码看起来还不错。关于“ASP”代码。这应该在服务器处理的 ASPX 文件中,而不仅仅是客户端 HTML 文件。我希望你是对的?
  • 你有任何jQuery附加到表单提交事件吗?
  • @Pete 不,我完全删除了它
  • @Marcel 我不明白你想说什么
  • 如果查看html源码,是不是把按钮转换成runat server不再出现了?

标签: c# asp.net jquery-ui webforms jquery-ui-dialog


【解决方案1】:

你好朋友protected void btnSaveFile_Click(object sender, EventArgs e) 从其他页面或应用程序复制了这个方法然后它就不起作用了,所以删除分配给按钮的事件和事件名称。转到设计并转到按钮甚至属性转到 OnClick 事件双击它,它将生成事件并自动为按钮分配事件名称。它会起作用的。

或者

在代码中给出新的 Onclick 函数名称

<asp:Button ID="btnSaveFile" runat="server" Text="Save" OnClick="btnSaveFile_Click"/>

使用完整链接:

asp.net Button OnClick event not firing

ASP.NET button not firing on click event

OnClick events not working in ASP.NET page

https://www.codeproject.com/Questions/681648/button-click-event-not-firing-asp-net

您可以在 Jquery 中使用此代码:

$(document).on('click', '#btnSave', function() {
{
   $('#saveDialog').dialog();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    相关资源
    最近更新 更多