我使用C#函数(File.aspx.cs)从外部源获取一些值,并将该值用作数据表上的custom attributes。但是,尽管我已经在我的JS文件上使用了var ID = '<%=dataID%>';
(但没有引号,但我得到了错误(JS)表达式),但我只能从C#dataID变量中获得0,1,2等作为ID值,而不是C#dataID变量的真实值。
如何在dt.file.js上获取此dataID值?
File.aspx.cs
public partial class Example : System.Web.UI.Page
{
public static int dataID;
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static DataTableResponse GetList(string parameters)
{
DataTableAjaxPostModel model = JsonConvert.DeserializeObject<DataTableAjaxPostModel>(parameters);
List<FieldAgentRow> list = new List<FieldAgentRow>();
XmlDocument doc = Utilities.FileToXmlDocument("data");
foreach (XmlNode person in doc.SelectNodes("//Personal"))
{
FieldAgentRow tmp = new FieldAgentRow();
//other codes
tmp.data_id = Int32.Parse(person.SelectSingleNode("ID").InnerText);
dataID = tmp.data_id;
list.Add(tmp);
}
DataTableResponse res = new DataTableResponse();
res.draw = model.draw;
res.data = list;
return res;
}
}
dt.file.js
$(document).ready(function () {
var ID = '<%=dataID%>';
var table = $('#list').DataTable({
"createdRow": function (row, data, ID ) {
$(row).attr('data-id', ID);
}
//other codes
});
更新解决方案: 感谢Paul's answer,我可以通过将JS代码修改为以下方式来获取data_id值:
$(document).ready(function () {
var table = $('#list').DataTable({
"createdRow": function (row, data, dataindex) {
$(row).attr('data-id', data.data_id);
}
//other codes
});
答案 0 :(得分:1)
您需要使用data属性来访问createdRow方法https://datatables.net/reference/option/createdRow中行的json。您应该能够做data.data_id(假设属性名称在序列化过程中未更改)。
您也可以在其中执行console.log(data)并在浏览器开发工具(f12)中对其进行检查,以查看可用的属性。