C# 当按下asp按钮时,如何停止页面重新加载?

C# 当按下asp按钮时,如何停止页面重新加载?,c#,asp.net,C#,Asp.net,我创建了一个表单,其中包含许多字段,这些字段在页面上加载有关特定用户的信息。当用户单击更新按钮时,页面似乎正在重新加载,然后将sames信息发送到服务器 我已经看过stackoverflow的类似答案,但似乎没有一个适合我 这是我的前端 <asp:TextBox ID="BirthDate" type="text" runat="server" class="form-control" placeholder="fecha nacimiento" aria-describedby="

我创建了一个表单,其中包含许多字段,这些字段在页面上加载有关特定用户的信息。当用户单击更新按钮时,页面似乎正在重新加载,然后将sames信息发送到服务器

我已经看过stackoverflow的类似答案,但似乎没有一个适合我

这是我的前端

<asp:TextBox ID="BirthDate" type="text" runat="server" class="form-control" 
 placeholder="fecha nacimiento"  aria-describedby="inputGroupPrepend" 
 required="required"></asp:TextBox>

<asp:Button class="btn btn-primary" ID="update" runat="server" Text="actualizar"  AutoPostback="false" OnClick="update_Click"/>

我希望更改后的文本字段被发送,而不是我加载的初始文本字段

我明白了。我讨厌做的就是添加!IsPostBack是初始化的变量。我不知道为什么能源部能澄清原因

//This is where the textboxes are populated 
protected void Page_Load(object sender, EventArgs e)
{

   if (!IsPostBack)
   {
    string employeID = gestiondeempleados.empleadoID;

    string queryStr = "SELECT empleado_id,nombreusuario,nombre  Where empleado_id =" + employeID;

    using (conn = new MySql.Data.MySqlClient.MySqlConnection(connString))
    {
        using (cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn))
        {
            conn.Open();
            using (reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                     firstname.Text = reader.GetString(reader.GetOrdinal("nombre"));
                }
            }
        }
    }
}

我建议使用Ajax请求而不是asp.net web窗体事件,这是在任何web应用程序框架中提交数据而不回发的标准和现代方法

您需要创建一个web方法并调用它,您可以搜索更多“asp.net web方法ajax jquery调用”

$('#btnSave')。单击(函数(e){
e、 预防默认值()//
var元素=这个;
$.ajax({
url:“你的网站方法”,
类型:“POST”,
data:JSON.stringify({'Options':someData}),
数据类型:“json”,
传统的:是的,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
如果(data.status==“成功”){
警惕(“完成”);

$(元素)。最近的(“表单”)。提交();//为什么不转到ASP.NET MVC。如果你需要像你的问题中那样经常使用Ajax,那么迟早你会不得不这样做。加载数据的代码在哪里?请创建一个。我已经添加了数据加载,我希望这会有所帮助。请不要使用SQL注入。请仔细阅读并使用参数,而不要使用SQL注入的问题是安全的这不应该是一个问题,因为它是一个内部软件,它不会在互联网上,但在内部网。
//This is where the textboxes are populated 
protected void Page_Load(object sender, EventArgs e)
{

   if (!IsPostBack)
   {
    string employeID = gestiondeempleados.empleadoID;

    string queryStr = "SELECT empleado_id,nombreusuario,nombre  Where empleado_id =" + employeID;

    using (conn = new MySql.Data.MySqlClient.MySqlConnection(connString))
    {
        using (cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn))
        {
            conn.Open();
            using (reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                     firstname.Text = reader.GetString(reader.GetOrdinal("nombre"));
                }
            }
        }
    }
}
$('#btnSave').click(function (e) {
    e.preventDefault(); //
    var element = this;    
    $.ajax({
        url: "YOUR_WEB_METHOD_URL",
        type: "POST",
        data: JSON.stringify({ 'Options': someData}),
        dataType: "json",
        traditional: true,
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            if (data.status == "Success") {
                alert("Done");
                $(element).closest("form").submit(); //<------------ submit form
            } else {
                alert("Error occurs on the Database level!");
            }
        },
        error: function () {
            alert("An error has occured!!!");
        }
    });
});