以下是我的控制器:
using ajaxcrud.DB.Core。
using ajaxcrud.DB.Data;
using ajaxcrud.Models;
using System.Collections.Generic;
using System.Data.Entity.Migrations;
namespace ajaxcrud.Controllers
{
public class HomeController : Controller
{
private ajaxcrudContext db = new ajaxcrudContext();
public ActionResult About()
{
ViewBag.Message = "您的應用描述頁面。"。
return View()。
}
public ActionResult Contact()
{
ViewBag.Message = "您的聯系頁面。"。
return View()。
}
public JsonResult getOrderList()。
{
var order = (from s in db.Orders
select new OrderFormModel
{
Id = s.Id,
FirstName = s.FirstName,
中間名 = s.MiddleName,
LastName = s.LastName,
//OrderNumber = Convert.ToString(s.OrderNumber),/span>
OrderNumber = s.OrderNumber,
OrderName = s.OrderName
}).ToList()。
return Json(new { data = order.ToList() }, JsonRequestBehavior.AllowGet) 。
}
//public ActionResult saveOrder(int? id)
//{
//var model = new OrderFormModel();
//> if (id != null)
// model.Id = Convert.ToInt32(id);/span>
// model = PrepareOrderFormModel(model);
// return View(model);
//}
public ActionResult Index(>int? id)
{
var model = new OrderFormModel();
if (id != null)
model.Id = Convert.ToInt32(id);
model = PrepareOrderFormModel(model);
return View(model)。
}
public ActionResult saveOrder(OrderFormModel model)
{
if (ModelState.IsValid)
{
try
{
if (model.Id > 0)
{
/dito mo lagay edit mo if greater than 0 ibig sabigin may pinasa kang Id so papasok sya as edit。
using (var db = new ajaxcrudContext()
{
var orderUpdate = db.Orders.FirstOrDefault(x => x.Id == model.Id) 。
orderUpdate.Id = model.Id;
orderUpdate.FirstName = model.FirstName;
orderUpdate.MiddleName = model.MiddleName;
orderUpdate.LastName = model.LastName;
orderUpdate.OrderName = model.OrderName;
orderUpdate.OrderNumber = model.OrderNumber;
db.Orders.AddOrUpdate(orderUpdate)。
db.SaveChanges();
//return Json(orderUpdate, JsonRequestBehavior.AllowGet);
return RedirectToAction("index", new { model.Id }) 。
}
}
else; }
{
//eto naman是用于添加。
using (var db = new ajaxcrudContext()
{
var order = new Order
{
FirstName = model.FirstName,
中間名 = model.MiddleName,
LastName = model.MiddleName,
OrderNumber = model.OrderNumber,
OrderName = model.OrderName。
};
db.Orders.Add(order)。
db.SaveChanges()。
return Json(order, JsonRequestBehavior.AllowGet)。
}
}
}
catch (Exception ex)
{
ModelState.AddModelError("CustomError"/span>, ex.Message)。
}
}
model = PrepareOrderFormModel(model);
return View(model);
}
public OrderFormModel PrepareOrderFormModel(OrderFormModel model)。
{
//var Orders = db.Orders.ToList();
//model.Orders = Orders.Select(x => new SelectListItem)
//{
///Text = x.LastName,
//> Value = x.Id.ToString()
//});
if (model.Id > 0)
{
var order = db.Orders.Find(model.Id)。
model.FirstName = order.FirstName;
model.LastName = order.LastName;
model.MiddleName = order.MiddleName;
model.OrderNumber = order.OrderNumber;
model.OrderName = order.OrderName。
}
return model。
}
public ActionResult Delete(OrderFormModel model)
{
if (model.Id > 0)
{
var orderId = db.Orders.FirstOrDefault(x => x.Id == model.Id) 。
db.Orders.Remove(orderId)。
db.SaveChanges()。
return RedirectToAction("Index"/span>)。
}
return View(model);
}
}
}
這是我的觀點:
這是我的觀點。
@using ajaxcrud.Models
@model ajaxcrud.Models.OrderFormModel
@{
ViewBag.Title = "Home Page"。
Layout = "~/Views/Shared/_Layout.cshtml"/span>。
}
<br />
<br />
<br />
<br />
<form>
@Html.HiddenFor(x => x.Id)
<div class="row">
<div class="col-md-2"/span>>
<div class="form-group">
@Html.LabelFor(x => x.FirstName, new { @class = "form-label" })
@Html.TextBoxFor(x => x.FirstName, new { @class = "form-control", @id = "firstname", @name = "firstname" })
</div>
</div>
<div class="col-md-2">
<div class="form-group">
@Html.LabelFor(x => x.MiddleName, new { @class = "form-label" })
@Html.TextBoxFor(x => x.MiddleName, new { @class = "form-control", @id = "middlelename", @name = "middlename" })
</div>
</div>
<div class="col-md-2">
<div class="form-group">
@Html.LabelFor(x => x.LastName, new { @class = "form-label" })
@Html.TextBoxFor(x => x.LastName, new { @class = "form-control", @id = "lastname", @name = "lastname" })
</div>
</div>
<div class="col-md-2">
<div class="form-group">
@Html.LabelFor(x => x.OrderNumber, new { @class = "form-label" })
@Html.TextBoxFor(x => x.OrderNumber, new { @class = "form-control", @id = "orderernumber", @name = "ordernumber" })
</div>
</div>
<div class="col-md-2">
<div class="form-group">
@Html.LabelFor(x => x.OrderName, new { @class = "form-label" })
@Html.TextBoxFor(x => x.OrderName, new { @class = "form-control", @id = "orderername", @name = "ordername" })
</div>
</div>
<button type="submit" class="btn btn-primary btn-sm" id="btnSubmit"> Save< /button>
</div>
</form>
<br />
<br />
<br />
<br />
<table id="EmptyBox" class="display table table-striped" style="width: 100" >
<thead>
<tr>
<th>名</th>
<th>中間名</th>
<th>姓氏</th>
<th>訂單號</th>
<th>訂單名稱</th>
<th></th>
</tr>
</thead>
</table>
@*<a href="@Url. Action("add" 。"訂單")" class="btn btn-primary btn-sm"/span>> <i class="fas fa-plus"></i> Add Order</a> *@
<script type="text/javascript">
var table;
$(function () { //加載資料表
table = $('#EmptyBox').DataTable({
"ajax": "@Url.Action("getOrderList", "home")"。
"columns": [
{ "data": "FirstName" },
{ "data": "MiddleName" },
{ "data": "LastName" },
{ "data": "OrderNumber" },
{ "data": "OrderName" },
{
"render": function (data, type, full, meta) {
return "<button class='btn btn-primary btn-sm' onclick='edit("/span> full. Id ")'><i class='fas fa-user-edit'></i></button> <button class='btn btn-danger btn-sm' onclick='del(" full. Id ")'><i class='fas fa-user-edit'></i></button>"。
}
}
]
});
});
// eto is function papuntang controller na kung saan kinukuha nya yung onclick na edit。
function edit(id) {
window.location.href = "@Url.Action("index", "home")? id=" id;
}
function del(id) {
window.location.href = "@Url.Action("delete", "home")? id=" id;
}
$('#btnSubmit').on('click', function () { /submit textbox value to data table
//var order = {};
//order.FirstName = $('#firstname').val();
//order.middleNAme = $('#middlename').val();
//order.LastName = $('#lastname').val();
//order.OrderNumber = $('#ordername').val();
//order.OrderName = $('#ordername').val();
var order = $('form').serialize()。
$.ajax({
型別。'POST',
網址。"@Url.Action("saveOrder", "Home")"。
data: 訂單。
dataType: 'json'。
success: function (data) {
//alert('Successfully saved!');
//table();
table.html(data)。
console.log(data)
/table.clear();
//table.ajax.reload();
//table.draw();
},
error: function (err) {
console.log(err)。
}
})
});
</script>
我想更新資料集,使之與我的文本框中的值相同。 我試著在我的modelstate中做ModelState.Clear來移除文本框,但它并不作業。 我的問題是,當我點擊更新時,我的資料表更新了,但文本框中的值卻沒有更新。請幫助我解決這個問題。謝謝你!
uj5u.com熱心網友回復:
在jquery中寫出提交按鈕點擊事件(ajax呼叫的成功事件)時清除文本框的值的函式,如下所示:
$('#btnSubmit')。 on('click', function () { /submit textbox value to data table.
var order = $('form').serialize()。
$.ajax({
型別。'POST',
網址。"@Url.Action("saveOrder", "Home")"。
data: 訂單。
dataType: 'json'。
success: function (data) {
//alert('Successfully saved!');
//table();
table.html(data)。
console.log(data)
/table.clear();
//table.ajax.reload();
//table.draw();
//清除文本框的值。
$('#firstname'/span>).val(""/span>)
$('#middlename').val("")
//清除這里的其他欄位。
},
error: function (err) {
console.log(err)。
}
})
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/320361.html
標籤:

