【发布时间】:2020-08-06 18:57:06
【问题描述】:
我是 MVC 应用程序的新手。我无法在 DataTable 中使用 if else 条件。请解决我的问题。
让我解释一下我的担忧。实际上,我在该表中有一个 SQL 数据库表,我有一个列名“STATUS”。现在我在这个表中几乎没有记录。现在我希望如果 Status=1 然后在 DataTable 中显示删除按钮,或者如果 Status=2 然后删除按钮将不显示。
让我与你分享我的代码。
$(document).ready(function () {
dataTable = $("#tableId").DataTable({
"ajax": {
"url": "/Home/GetAllPurchaseOrder",
"type": "GET",
"datatype": "json"
},
"columns": [
{ "data": "PurchaseID", "autowidth": true },
{ "data": "SupplierID", "autowidth": true },
{ "data": "SupplierName", "autowidth": true },
{ "data": "Currency", "autowidth": true },
{ "data": "TotalAmount", "autowidth": true },
{ "data": "Date_Of_Purchase", "autowidth": true },
{ "data": "Due_Date", "width": "56px" },
{
"data": "PurchaseID", "width": "50px", "render": function (data) {
return '<button class="btn btn-danger DeletePurchase" onclick="Delete(' + data + ')">Delete</button>'
}
},
{
"data": "PurchaseID", "width": "50px", "render": function (data) {
return '<button class="btn btn-success ViewPurchase" onclick="Display(' + data + ')">View</button>'
}
}
]
});
});
控制器代码:
[HttpGet]
public ActionResult GetAllPurchaseOrder()
{
string loginId = Convert.ToString(Session["LoginId"]);
try
{
List<PurchaseOrderViewModel> purchaseDetail = new List<PurchaseOrderViewModel>();
if (!string.IsNullOrEmpty(loginId))
{
string UserRoleName = Convert.ToString(Session["UserTypeName"]);
if (UserRoleName == RoleTypeConstant.CustomerUserType)
{
purchaseDetail = _websiteRepo.GetAllPurchaseDetailByLoginId(loginId).ToList();
var stock = purchaseDetail;
return Json(new { data = stock }, JsonRequestBehavior.AllowGet);
//return View(stockDetail);
}
else
{
return RedirectToAction("Login", "Account");
}
}
else
{
return RedirectToAction("Login", "Account");
}
}
catch (Exception)
{
throw;
}
}
public IQueryable<PurchaseOrderViewModel> GetAllPurchaseDetailByLoginId(string LoginId)
{
var StockList = (from aspuser in context.AspNetUsers
join cus in context.Customers on aspuser.Id equals cus.LoginID
join purchase in context.PurchaseOrders on aspuser.Id equals purchase.LoginID
where purchase.LoginID == LoginId
select new PurchaseOrderViewModel
{
LoginID = purchase.LoginID,
PurchaseID = purchase.PurchaseID,
SupplierID = purchase.SupplierID,
SupplierName = purchase.SupplierName,
Currency = purchase.Currency,
TotalAmount = purchase.TotalAmount,
Date_Of_Purchase = purchase.Date_Of_Purchase,
Date_Arrived = purchase.Date_Arrived,
Date_Departed = purchase.Date_Departed,
Due_Date = purchase.Due_Date,
Location = purchase.Location,
Notes = purchase.Notes,
Status = purchase.Status
}).AsQueryable();
return StockList;
}
JAVASCRIPT:
<script>
var dataTable;
$(document).ready(function () {
debugger;
dataTable = $("#tableId").DataTable({
"ajax": {
"url": "/Home/GetAllPurchaseOrder",
"type": "GET",
"datatype": "json"
},
"columns": [
{ "data": "PurchaseID", "autowidth": true },
{ "data": "SupplierID", "autowidth": true },
{ "data": "SupplierName", "autowidth": true },
{ "data": "Currency", "autowidth": true },
{ "data": "TotalAmount", "autowidth": true },
{ "data": "Date_Of_Purchase", "autowidth": true },
{ "data": "Due_Date", "width": "56px" },
{
"data": "STATUS", "width": "50px", "render": function (data) {
return '<button class="btn btn-danger DeletePurchase' + ((data != 1) ? ' invisible' : 'visible') + '" onclick="Delete(' + data + ')">Delete</button>'
}
},
{
"data": "PurchaseID", "width": "50px", "render": function (data) {
return '<button class="btn btn-success ViewPurchase" onclick="Display(' + data + ')">View</button>'
}
}
]
});
});
【问题讨论】:
-
请帮助我。我真的很感激
-
能把“/Home/GetAllPurchaseOrder”的json结果加进去吗?
-
是的,我能做到
-
您要在其中放置 if-else 条件的数据表在哪里?
-
如果您看到脚本,我已显示 2 个按钮删除和查看。在删除按钮中,我需要使用 if else 条件。
标签: jquery asp.net-mvc datatables datatables-1.10