DataTable. DefaultView. Вид не сортирует

Я думаю, что Вы пропускаете некоторые вещи. Во-первых, нет никакой потребности в Ответе. Запишите, можно использовать <%= %> теги. Во-вторых, можно записать собственные расширения HtmlHelper, чтобы сделать общие действия. В-третьих, определенное форматирование помогает много. В-четвертых, все это, вероятно, застряло бы в пользовательском элементе управления, который будет совместно использован несколькими различными взглядами, и таким образом полные повышают в основном представлении, является более чистым.

я предоставлю Вам, что метка все еще не так аккуратна, как можно было бы хотеть, но она могла быть значительно очищена с помощью некоторых временных переменных.

Теперь, это не так плохо, и было бы еще лучше, если бы я не должен был форматировать его для ТАК.

 <%
    var PreviousPost = ViewData.Model.PreviousPost;
    var NextPost = ViewData.Model.NextPost;

    // Display the "Next and Previous" links
    if (PreviousPost != null || NextPost != null)
    {
  %>

 <div>

        <%= PreviousPost == null
                ? string.Empty
                : Html.ActionLinkSpan("<< " + PreviousPost.Subject,
                                "view",
                                new { id = PreviousPost.Id },
                                new { style = "float: left;" } ) %>
          <%= NextPost == null
                ? string.Empty
                : Html.ActionLinkSpan( NextPost.Subject + " >>",
                                   "view",
                                    new { id = NextPost.Id },
                                    new { style = "float: right;" } ) %>

  <div style="clear: both;" />
  </div>

  <% } %>
17
задан Mike Wills 30 July 2009 в 19:28
поделиться

5 ответов

Мне пришлось применить несколько иной подход. Этот пост был самым близким, что я мог найти, чтобы заставить мой код работать. Вот рабочий результат:

actionLogDT.DefaultView.Sort = "StartDate";
DataView dv = actionLogDT.DefaultView;

foreach (DataRowView logRow in dv) { . . . }

Оттуда мне просто нужно вернуть значение в правильный тип.

(string)logRow["Status"].ToString()
7
ответ дан 30 November 2019 в 10:29
поделиться
foreach (var logRow in actionLogDT.DefaultView.ToDataTable()) { ... }
3
ответ дан 30 November 2019 в 10:29
поделиться

Сортировка представления не изменяет порядок сортировки данных в таблице, только порядок в представлении. Он должен работать, если вместо этого вы выполняете foreach в представлении, отбрасывая строку из DataRowView обратно в строго типизированную строку.

foreach (DataRowView logRowView in actionLogDT.DefaultView)
{
    CustomerService.ActionLogStartEndRow logRow = logRowView.Row as CustomerService.ActionLogStartEndRow;
    // code here
}
11
ответ дан 30 November 2019 в 10:29
поделиться

Просто любопытно: почему вы используете DataRowView ?

т.е.

foreach (DataRow row in actionLogDT.Rows)
{
  Console.WriteLine(row["Status"]);
}
0
ответ дан 30 November 2019 в 10:29
поделиться

Попробуйте следующее:

actionLogDT.DefaultView.Sort = "["+actionLogDT.Columns[0].ColumnName+"] asc";
1
ответ дан 30 November 2019 в 10:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: