Я получаю некоторые значения из внешнего источника с помощью функции C# (File.aspx.cs) и использую это значение как настраиваемые атрибуты в таблицах данных. Однако я получаю только 0,1,2 и т.д. в качестве значения идентификатора, а не реального значения из переменной C# dataID, хотя я уже использую var ID = '<%=dataID%>'; в своем файле JS (без кавычек я получил ожидаемое выражение ошибки (JS)).
Как мне получить это значение dataID в моем dt.file.js?
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
});
ОБНОВЛЕНИЕ РЕШЕНИЯ: Благодаря Ответ Павла я могу получить значение data_id, изменив свой JS-код на:
$(document).ready(function () {
var table = $('#list').DataTable({
"createdRow": function (row, data, dataindex) {
$(row).attr('data-id', data.data_id);
}
//other codes
});
@Rafalon Я добавил недостающую часть. Это не самая интересная часть, потому что я хочу сосредоточиться только на переменной
Вам нужно использовать свойство data, чтобы получить json для строки в вашем методе createdRow datatables.net/reference/option/createdRow. У вас должна быть возможность сделать data.data_id (при условии, что имя свойства не изменилось во время сериализации). Вы также можете создать console.info (данные) там и изучить его в инструментах разработчика вашего браузера (f12), чтобы узнать, какие свойства доступны.
@PaulZepernick Это работает! На самом деле это намного проще, чем я думал. Можете ли вы опубликовать это в качестве ответа, чтобы я принял его?
Кстати, если вы просто пытаетесь назначить уникальный идентификатор строке, вы можете отправить свойство json DT_RowId в своей строке. Если вы используете DT 1.10.8>, похоже, есть возможность изменить имя по умолчанию datatables.net/reference/option/rowId.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно использовать свойство data, чтобы перейти к json для строки в вашем методе createdRow https://datatables.net/reference/option/createdRow. Вы должны иметь возможность делать data.data_id (при условии, что имя свойства не изменилось во время сериализации).
Вы также можете создать console.info (данные) там и изучить его в инструментах разработчика вашего браузера (f12), чтобы узнать, какие свойства доступны.
Это я или ваш
GetListничего неreturn?