你好我工作的一個表如何更新一個表,而不刷新整個網站剃刀
我不能大氣壓更新表未經本站清爽。 我需要一種方法來輕鬆地
添加一行,刪除一行,修改表格內容中的一行。
我的桌子是這樣構建的。
{....}
@using (Html.BeginForm())
{
<fieldset>
<legend>ShiftTypes</legend>
<table class="EditableTable" id="EditableTableShiftTypes">
<thead>
<tr>
<th>
#:
</th>
<th>
ShiftName:
</th>
<th>
ShiftCode:
</th>
<th>
Suplement:
</th>
<th>
ExtraSuplement:
</th>
<th>
</th>
</tr>
</thead>
<tbody>
@foreach (BPOPortal.Domain.Models.ShiftTypeView type in Model.ShiftTypeList)
{
<tr>
<td>
@type.ID
</td>
<td>
@type.ShiftName
</td>
<td>
@type.Name
</td>
<td>
@type.Supplement
</td>
<td>
@type.OneTimePayment
</td>
<td>
<button>
Delete</button>
</td>
</tr>
}
<tr>
<td>
<label>
</label>
</td>
<td>
@Html.Editor("ShiftName")
</td>
<td>
@Html.Editor("ShiftCode")
</td>
<td>
@Html.Editor("Suplement")
</td>
<td>
@Html.DropDownList("ExtraSuplement", new SelectListItem[] { new SelectListItem() { Text = "yes", Value = "true", Selected = false }, new SelectListItem() { Text = "No", Value = "false", Selected = false } }, "--Choose--")
</td>
<td>
<button id="AddButton">
Add</button>
</td>
</tr>
</tbody>
</table>
<button type="submit" id="Gem">
Save</button>
</fieldset>
{....}
我試圖以下面的方式使用Ajax,但它刷新整個頁面。
{....}
var ID= 2;
$("#AddButton").click(function(){
var ShiftName= $('#ShiftName').attr('value');
var ShiftCode= $('#ShiftCode').attr('value');
var Suplement= $('#Suplement').attr('value');
var ExtraSuplement= $('#ExtraSuplement').attr('value');
$.ajax({
url: '@Url.Action("AddData", "ShiftTypesConfiguration")',
data: { ID: ID.toString(), ShiftName: $('#ShiftName').attr('value'), ShiftCode: $('#ShiftCode').attr('value'), Suplement: $('#Suplement').attr('value'), ExtraSuplement: $('#ExtraSuplement').attr('value') },
type: 'POST',
// contentType: 'application/json; charset=utf-8;',
dataType: 'json',
success: function (response)
{
function fnClickAddRow() {
$('#EditableTableShiftTypes').dataTable().fnAddData([
response.ID,
response.ShiftName,
response.ShiftCode,
response.Suplement,
response.ExtraSuplement,
"<button>Delete</button>"]); }
}
});
ID++;
});
{....}
</script>
我應該處理請求的控制器中的方法。
public JsonResult AddData(string ID, string ShiftName, string ShiftCode, string Suplement, string ExtraSuplement)
{
TableViewModel tableViewModel = new TableViewModel();
tableViewModel.ID = ID;
tableViewModel.ShiftName= ShiftName;
tableViewModel.ShiftCode= ShiftCode;
tableViewModel.Suplement= Suplement;
tableViewModel.ExtraSuplement= ExtraSuplement;
return Json(tableViewModel);
}
然而,它似乎並沒有工作,現在我所要求的思路和辦法,使這更好/更容易/工作
編輯:看了一份過去的錯誤
編輯2:我現在已經稍微改變它我發現我的腳本運行過程中出現錯誤,這是最新的。仍然存在問題,但至少現在我可以看到並描述錯誤。
這是我改劇本,現在是
$("#AddButton").click(function (event) {
event.preventDefault();
var ShiftName = $('#ShiftName').attr('value');
var ShiftCode = $('#ShiftCode').attr('value');
var Suplement = $('#Suplement').attr('value');
var ExtraSuplement = $('#ExtraSuplement').attr('value');
$.ajax({
url: '@Url.Action("AddData", "ShiftTypesConfiguration")',
data: { ID: ID.toString(), ShiftName: ShiftName, ShiftCode: ShiftCode, Suplement: Suplement, ExtraSuplement: ExtraSuplement },
type: 'POST',
// contentType: 'application/json; charset=utf-8;',
dataType: 'json',
success: function (response) {
function fnClickAddRow() {
$('#EditableTableShiftTypes').dataTable().fnAddData([
response.ID,
response.ShiftName,
response.ShiftCode,
response.Suplement,
response.ExtraSuplement,
"<button>Delete</button>"]);
}
}
});
ID++;
});
現在螢火我見過的值後面的頁面上的幫助,但之前,我可以看到他們的頁面被刷新。
fnAddData函數做什麼?你可以添加代碼嗎?此外,你可能會得到更多的信息,說明爲什麼它不能通過在Chrome或者螢火蟲上調試js來工作。 – nieve
fnAddData是一個函數,它應該添加到我使用DataTables Jquery插件時獲得的數據表的行中。我一直在試着螢火蟲。然而它似乎只是在運行而已。在某些情況下,整個頁面在表格內加載。我也沒有問題進入AddData方法。 – Helbo
你應該在你的javascript點擊函數中添加一個'event.preventDefault();',當然點擊任何按鈕元素都會重新加載頁面?所以你有'.click(函數fnClickAddRow(event){event.preventDefault();' – kolin