从C#变量获取datatables属性的值

时间:2018-08-03 08:08:17

标签: javascript c# datatables

我使用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
    });

1 个答案:

答案 0 :(得分:1)

您需要使用data属性来访问createdRow方法https://datatables.net/reference/option/createdRow中行的json。您应该能够做data.data_id(假设属性名称在序列化过程中未更改)。

您也可以在其中执行console.log(data)并在浏览器开发工具(f12)中对其进行检查,以查看可用的属性。