Я думаю, что Вы пропускаете некоторые вещи. Во-первых, нет никакой потребности в Ответе. Запишите, можно использовать <%= %>
теги. Во-вторых, можно записать собственные расширения 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>
<% } %>
Мне пришлось применить несколько иной подход. Этот пост был самым близким, что я мог найти, чтобы заставить мой код работать. Вот рабочий результат:
actionLogDT.DefaultView.Sort = "StartDate";
DataView dv = actionLogDT.DefaultView;
foreach (DataRowView logRow in dv) { . . . }
Оттуда мне просто нужно вернуть значение в правильный тип.
(string)logRow["Status"].ToString()
foreach (var logRow in actionLogDT.DefaultView.ToDataTable()) { ... }
Сортировка представления не изменяет порядок сортировки данных в таблице, только порядок в представлении. Он должен работать, если вместо этого вы выполняете foreach
в представлении, отбрасывая строку из DataRowView обратно в строго типизированную строку.
foreach (DataRowView logRowView in actionLogDT.DefaultView)
{
CustomerService.ActionLogStartEndRow logRow = logRowView.Row as CustomerService.ActionLogStartEndRow;
// code here
}
Просто любопытно: почему вы используете DataRowView ?
т.е.
foreach (DataRow row in actionLogDT.Rows)
{
Console.WriteLine(row["Status"]);
}
Попробуйте следующее:
actionLogDT.DefaultView.Sort = "["+actionLogDT.Columns[0].ColumnName+"] asc";