【问题标题】:Mvc3 webgrid conditional statement on column列上的 Mvc3 webgrid 条件语句
【发布时间】:2014-03-14 17:07:45
【问题描述】:

我有一个 webgrid,我想在其中对我将拥有的列数据放置一个条件语句?

可以吗,如果可以,可以举个例子吗?

编辑

只是一个sn-p

grid.Column("Status","Status",canSort: true)

如果状态的值为“正确”,我想显示图像而不是文本。

【问题讨论】:

    标签: asp.net-mvc-3 razor webgrid


    【解决方案1】:

    Source

    在检查条件时,我隐藏了我的两列密码和电子邮件地址。通过这样做,我可以阻止我的 webgrid 显示我不想在特定条件下显示的列。

    var grid = new WebGrid(Model.User)
    
    if(myConditionCanGoInHere) {
    
    @grid.GetHtml(columns: grid.Columns(
    
    grid.Column("Name"),
    grid.Column("Password"),
    grid.Column("EmailAddress") ))
    
    }
    else{
    
    @grid.GetHtml(columns: grid.Columns(
    
    grid.Column("Name")
    // Here I have not included Password and EmailAddress columns.
    
    ))
    
    }
    

    这是当你想隐藏整个列的时候,但是如果你想显示列并且只隐藏特定的值,那么在这种情况下该怎么做呢?这也可以做到,你可以有一个 if else 条件,如下所示……

    @grid.GetHtml(
        columns: grid.Columns(
            grid.Column(header: "Edit", format: item => item.CanEdit ? Html.ActionLink("Edit","Edit","Person",new {id = item.PersonId},null) : Html.Raw("uneditable")),
    
            grid.Column(columnName: "CanEdit", header: "Editable?"),
            grid.Column(columnName: "DisplayName", header: "Display Name"),
            grid.Column(columnName: "Email", header: "Email")
        )
    )
    

    【讨论】:

      【解决方案2】:

      一个不那么乏味且更易于阅读的代码(仅在一年半之后)。

      var columnsToAdd = new List<WebGridColumn>();
      ///here add yout collumns according to conditions
      
      @grid.GetHtml(columns: columnsToAdd.ToArray())
      

      【讨论】:

        【解决方案3】:

        如果我正确理解了您的问题,您可能希望在您的视图中添加“if”语句。比如:

        @{
            var option1 = true;
            var option2 = false;
        }
        @if(option1){
            <div id="grid1">
                @grid.GetHtml(
                    tableStyle: "grid",
                    headerStyle: "head",
                    alternatingRowStyle: "alt",
                    columns: grid.Columns(
                        grid.Column("firstColumn"),
                        grid.Column("secondColumn")
                    )
                )
            </div>
        } else if (option2) {
            <div id="grid2">
                @grid.GetHtml(
                    tableStyle: "grid",
                    headerStyle: "head",
                    alternatingRowStyle: "alt",
                    columns: grid.Columns(
                        grid.Column("firstColumn"),
                        grid.Column("secondColumn"),
                        grid.Column("thirdColumn")
                    )
                )
            </div>
        } else {
            <div id="grid3">
                No grid
            </div>
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-09-18
          • 1970-01-01
          • 2011-11-09
          • 1970-01-01
          • 2011-07-20
          • 1970-01-01
          • 2012-01-02
          相关资源
          最近更新 更多