0

列データに条件ステートメントを配置したい webgrid がありますか?

はいの場合、例を挙げていただけますか?

編集

ほんの一部

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

ステータスの値が「正解」の場合、テキストではなく画像を表示したい。

4

3 に答える 3

1

ソース

ここでは、状態を確認するために、パスワードと電子メールアドレスの2つの列を非表示にしています。そうすることで、特定の条件で表示したくない列がWebグリッドに表示されないようにすることができます。

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.

))

}

これは、列全体を非表示にする場合ですが、列を表示して特定の値のみを非表示にする場合はどうすればよいでしょうか。それも可能です。以下に示すようなifelse条件を設定できます…</p>

@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")
    )
)
于 2012-11-02T18:20:26.330 に答える
1

退屈ではない、読みやすいコード (そしてわずか 1 年半後)。

var columnsToAdd = new List<WebGridColumn>();
///here add yout collumns according to conditions

@grid.GetHtml(columns: columnsToAdd.ToArray())
于 2014-03-14T09:07:45.447 に答える
0

私があなたの質問を正しく理解しているなら、あなたはあなたの見解に「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>
}
于 2012-11-02T18:02:39.660 に答える