#jquery #asp.net-mvc #json
#jquery #asp.net-mvc #json
Вопрос:
Я использую массивы данных (datatables.net ) в сочетании с sAjaxSource
вот так
$(document).ready(function() {
$('#userTable').dataTable({
"sAjaxSource": '<%= Url.Action("GetUserData", "Home") %>',
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"bStateSave": true,
"bRetrieve": true,
"aoColumns":
[
{ "bSortable": false },
null,
{ "sType": "title-string" },
null,
null,
null,
null,
null
]
});
});
серверный метод для этого выглядит следующим образом
public JsonResult GetUserData()
{
IList<string[]> userList = GetUserList();
var sendData = new{aaData = userList};
return new JsonResult {JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = sendData};
}
здесь все работает нормально, я могу видеть данные в таблице.
но некоторые из моих свойств пользователя включают некоторые ссылки на изображения
например
userData[0] = string.Format("<img src='{0}' alt='{1}' title='{1}' />", picUrl, title);
но в самой таблице всегда отсутствует «/». таким образом, сортировка по этим столбцам не работает. если я выполняю
userData[0] = string.Format("<img src='{0}'></img>", imgUrl);
отсутствует конечный тег… в табличной ячейке значение всегда
<img src='url' title='abc'>
таким образом, либо ‘/’ отсутствует, либо весь конечный тег img.
начало результата json:
{"aaData":[["u003cimg src=u0027/Content/image.pngu0027 class=u0027profilePictureu0027 /u003e", ...[other elements]
была ли у кого-нибудь еще такая проблема?
редактировать: я только что заметил, что он также преобразует ‘ в »
Ответ №1:
Единственное, что вы можете сделать, это для столбцов изображений определить свой собственный метод сортировки и переопределить то, что datatables выполняет изначально. Таким образом, вы можете игнорировать изображения или делать с ними все, что захотите.
Комментарии:
1. хм, да, это правда, но странная вещь заключается в том, что либо таблицы данных, либо что-то еще изменяет строку, которую я возвращаю…
2. @nWorx — Я бы проверил JSON, который возвращается с сервера, чтобы увидеть, является ли это причиной. Если нет, то это где-то выше в дереве. Однако я заметил, что инспектор Chrome не показывает закрытие
/>
для тегов изображений, так что это может быть еще одной возможной проблемой, которая происходит.3. я проверил это также с firefox (плагин firebug), тег < /img> отсутствует… я кое-что добавил <span></span>, и тег span работает… я отредактирую свой первоначальный пост и добавлю некоторый результат в формате json..
Ответ №2:
хорошо, я нашел решение..
проблема отсутствия сортировки не была отсутствующей / или вместо этого я просто изменил
userdata[0] = string.Format("<img src='{0}' alt='{1}' title='{1}' />", picUrl, title);
Для
userdata[0] = string.Format("<img src='{0}' alt='{1}' title="{1}" />", picUrl, title);
и чем это помогло 🙂
я не знаю почему, но это происходит 🙂
спасибо @cdeszaq за вашу поддержку