rad*_*byx 3 javascript ajax datatable jquery jquery-datatables
使用数据表处理时server-side
.搜索值如何传递给服务器?我查看了文档.
DataTable中自动发送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" }
]
});
});
Run Code Online (Sandbox Code Playgroud)
服务器
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;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
您不应该使用search作为参数.但它会自动成为查询字符串的一部分.
public JsonResult GetJsonData(string draw, int start, int length)
{
string search = Request.QueryString["search[value]"];
// your code for search filtering
}
Run Code Online (Sandbox Code Playgroud)
谢谢你
我使用它,因为它永远不会为空,而是一个空字符串。
Request.Form.GetValues("search[value]")[0]
Run Code Online (Sandbox Code Playgroud)