![](/img/trans.png)
[英]How to use server-side processing in JQuery DataTables without Ajax
[英]How to use search on datatables with server-side processing?
使用數據表server-side
。 搜索值如何傳遞給服務器? 我看過文檔。
數據表自動將draw
、 start
和length
發送到服務器。 我可以而且應該對search
做一些類似的事情嗎? 文檔提到search[value]
但我不知道如何解釋它。
客戶
$(document).ready(function () {
var url = '@Url.Action("GetJsonData", "Home")';
$('#example').dataTable({
'searching': true,
"paging": true,
"processing": true,
"serverSide": true,
"ajax": {
"url": url,
"type": "GET"
},
"columns": [
{ "data": "id" },
{ "data": "name" }
]
});
});
服務器
public JsonResult GetJsonData(string draw, int start, int length, string search)
{
var hugeDataArr = new object[100];
var returnDataArr = new object[length];
for (int i = 0; i < hugeDataArr.Length; i++)
{
hugeDataArr[i] = new
{
DT_RowId = i,
id = "id" + i.ToString().PadLeft(2, '0'),
name = "nameæøå" + i.ToString().PadLeft(2, '0')
};
}
for (int i = 0; i < length; i++)
{
returnDataArr[i] = hugeDataArr[start + i];
}
JsonResult json = Json(new
{
draw = Convert.ToInt32(draw),
recordsTotal = 100, // calculated field
recordsFiltered = 50, // calculated field
data = returnDataArr
}, JsonRequestBehavior.AllowGet);
return json;
}
您不應該使用搜索作為參數。但它會自動成為您的查詢字符串的一部分。
public JsonResult GetJsonData(string draw, int start, int length)
{
string search = Request.QueryString["search[value]"];
// your code for search filtering
}
謝謝拉維
我使用它,因為它永遠不會為空,而是一個空字符串。
Request.Form.GetValues("search[value]")[0]
string search = Request.Form.GetValues("search[value]").FirstOrDefault();
這將為您提供搜索框的價值。
正如 docs 數據表中所寫的那樣,傳遞一個具有兩個值的搜索數組。 search[value] 是過濾所需的搜索字符串,search[regex] 只是一個布爾值,表示 search[value] 應該被解釋為正則表達式還是字符串。
如果您在特定列中搜索值,則搜索字符串將位於 columns[i][search][value]
如果search[value]
參數始終為 null,則確保您在客戶端使用POST
Ajax 調用,並且控制器的操作方法標記為[HttpPost]
。
客戶端:
$('#example').dataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": url,
"type": "POST"
},
//Other configurations
});
服務器:
[HttpPost]
public JsonResult GetJsonData(string draw, int start, int length)
{
string search = Request.QueryString["search[value]"];
// your code for search filtering
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.