2016-07-22 2 views
0

Основная идея о том, что я пытаюсь выполнить это:переопределения значения на Jquery пост в контроллер

У меня есть кнопка «сохранить» и кнопку «удалить». Если пользователь редактирует учетную запись и сохраняет ее, мы предполагаем, что учетная запись активна, и поэтому сохраняется значение 1 («Истина»). Если он нажимает кнопку «Удалить», то они сохраняют одни и те же данные, за исключением того, что учетная запись больше не активна, поэтому вместо этого нужно сохранить 0 («False»). Как изменить статус учетной записи, если пользователь решит продолжить действие «удалить»? Я попытался установить .val() для «IsActive» на .val («False»), чтобы его можно было оценить и превратить в 0 в Convert.ToBoolean, но приложение застыло.

Вот мой JQuery пост для действия REMOVE:

$("#RemoveAccount").click(function(e){ 


     $('#Display').show(); 
     $('#Display2').show(); 

     $.post("/RxCard/SaveAccount", 
    { 
     IsActive: $("#chkIsActive").val('False'), 
     AccountId: $("#AccountID").val(), 
     AccountName: $("#txtAccountName").val(), 
     Address: $("#txtAddress").val(), 
     City: $("#txtCity").val(), 
     State: $("#txtState").val(), 
     ZipCode: $("#txtZip").val(), 
     Area: $("#txtArea").val(), 
     Prefix: $("#txtPrefix").val(), 
     Suffix: $("#txtSuffix").val() 


    }).done(function (output) { 
     if (output.length > 0) 
      alert(output) 
    }).always(function() { 
     $("body").css("cursor", "default").delay(1000); 
     // loadAccount(accountId); 
    });  
}); 

Здесь контроллер:

[ValidateRequest] 
[HttpPost] 
public string SaveAccount(FormCollection form) 
{ 
    Pharmacy pharmacy = new Pharmacy(); 
    var isactive = Convert.ToBoolean(form["IsActive"])?1:0; 
    int AccountID = Convert.ToInt32(form["AccountId"]); 
    var AccountName = form["AccountName"]; 
    var Address = form["Address"]; 
    var City = form["City"]; 
    var State = form["State"]; 
    var ZipCode = form["ZipCode"]; 
    var PhoneNumber = "(" + form["Area"] + ") " + form["Prefix"] + "-" + form["Suffix"]; 


    using (OdbcConnection _conn = new OdbcConnection("FILEDSN=c:\\datasources\\RxCard.dsn")) 
    using (OdbcCommand cmd1 = new OdbcCommand()) 
    { 
     cmd1.Connection = _conn; 
     cmd1.CommandText = "{call web.Maint_UpdateClinic(?,?,?,?,?,?,?,?,?)}"; 
     cmd1.Parameters.AddWithValue("@AccountID", AccountID); 
     cmd1.Parameters.AddWithValue("@IsActive", isactive); 
     cmd1.Parameters.AddWithValue("@AccountName", AccountName); 
     cmd1.Parameters.AddWithValue("@Address", Address); 
     cmd1.Parameters.AddWithValue("@City", City); 
     cmd1.Parameters.AddWithValue("@State", State); 
     cmd1.Parameters.AddWithValue("@ZipCode", ZipCode); 
     cmd1.Parameters.AddWithValue("@PhoneNumber", PhoneNumber); 
     cmd1.Parameters.AddWithValue("@WebID", CookieStore.GetCookie("WebId")); 

     cmd1.CommandType = CommandType.StoredProcedure; 
     _conn.Open(); 
     cmd1.ExecuteNonQuery(); 
     _conn.Close(); 
    } 
    //Response.Redirect("~/rxcard/search"); 
    return string.Empty; 
} 

ответ

1

если у вас есть два отдельных обработчиков щелчка для "RemoveAccount" и "SaveAccount", почему не устанавливаете ли вы «IsActive» напрямую

$("#RemoveAccount").click(function(e){ 


    $('#Display').show(); 
    $('#Display2').show(); 

    $.post("/RxCard/SaveAccount", 
{ 
    IsActive: false, //for save account IsActive : true 
    AccountId: $("#AccountID").val(), 
    AccountName: $("#txtAccountName").val(), 
    Address: $("#txtAddress").val(), 
    City: $("#txtCity").val(), 
    State: $("#txtState").val(), 
    ZipCode: $("#txtZip").val(), 
    Area: $("#txtArea").val(), 
    Prefix: $("#txtPrefix").val(), 
    Suffix: $("#txtSuffix").val() 


}).done(function (output) { 
    if (output.length > 0) 
     alert(output) 
}).always(function() { 
    $("body").css("cursor", "default").delay(1000); 
    // loadAccount(accountId); 
});  

});

+0

потому что я не думал об этом. Это сработало отлично! Благодарю вас. @Paresh. – thatdude

Смежные вопросы