Как изменить значение «на лету» в ASP.Net Столбец MVC WebGrid?

#asp.net #asp.net-mvc #webgrid

#asp.net #asp.net-mvc #webgrid

Вопрос:

У меня есть ASP.Net Веб-сетка MVC и когда столбец ‘SuccessRate’ меньше нуля, мне нужно отобразить ‘N / A’. Вы знаете, как бы я это сделал? Следующее является частью моего cshtml:

 @grid.GetHtml(
    tableStyle: "grid",
    headerStyle: "head",
    alternatingRowStyle: "alt",
    columns: grid.Columns(
        grid.Column("ABC"),
        grid.Column("Units", "units"),
        grid.Column("Min_Req_Res_Points", "mrrp"),
        grid.Column("Min_Req_NRes_Points", "mrnrp"),
        grid.Column("Total_Applications_Available", "avail"),
        grid.Column("Total_Applications_Submitted", "total"),
        grid.Column("Season_Number", "Season"),
        grid.Column("Year"),
        grid.Column(columnName: "SuccessRate",
          format: @<text>@item.Success_Rate</text>)
  

Ответ №1:

У меня нет тестового стенда, который я мог бы использовать для тестирования этого примера, но возможно ли использовать ?: operator?

 format: @<text>@item.Success_Rate >= 0 item.Success_Rate : "N/A"</text>
  

Это, или вы можете использовать модель представления, которая предоставляет правильное строковое представление значения.

 public string Success_Rate_Text
{
    get
    {
        return this.Success_Rate >= 0 ? SuccessRate.ToString : "N/A";
    }        
}
  

Комментарии:

1. сетка. Столбец(имя_колонки: «Процент успеха», формат: элемент => @item. Success_Rate < 0 ? «N / A»: @item. Success_Rate)

Ответ №2:

В данный момент я не нахожусь за компьютером с компилятором C #, но вы должны быть в состоянии выполнить условную проверку прямо в определении столбца. Что-то вроде этого:

 grid.Column(columnName: "SuccessRate", 
            format: @if(item.Success_Rate < 0) { <text>N/A</text> } 
                     else { item.Success_Rate })