1

4つの列に設定する単純なグリッドがあり、「はい」が表示されている場合は緑色で表示され、「いいえ」が表示されている場合は赤色で表示されます。これらの列で表示できる値は2つだけです。

c.Bound(x => x.col1);
                    c.Bound(x => x.col2)
                        .Title("col2 example");
                    c.Bound(x => x.col3)
                        .Title("col3 example");
                    c.Bound(x => x.col4)
                        .Title("col4 example");
                    c.Bound(x => x.col5)
                        .Title("col5 example");

col2-5が問題になっています

                col1 = x.col1,
                col2 = (x.col2Id.HasValue)  ? "Yes" : "No",
                col3 = (x.col3Id.HasValue) ? "Yes" : "No",
                col4 = (x.col4Id.HasValue) ? "Yes" : "No",
                col5 = (x.col5) ? "Yes" : "No"

多くの場合、すべての列は異なる名前を持っていますが、このようにそれは匿名です。

編集-私の最新のプロジェクトのコードを見つけてみました、クライアントテンプレート=は常にこれらのフィールドにのみ緑色で「はい」を表示します、サーバーテンプレート=<span style='color:green'>Yes</span>フィールドがはいを表示することを意図していた<span style='color:red'>No</span>場合、フィールドがいいえを表示することを意味します。したがって、コードの両方のビットが半分機能し、それらを使用しているときと現在の唯一の違いは、現在mvc3を使用していることです。

編集2-それがtelerikの最新バージョンでの変更なのか、それとも他の何かなのかはわかりませんが、クライアントテンプレートコードを次のように変更すると問題は解決しました。

.ClientTemplate("<# if(Col2 == 'Yes') { #><span style='color:green'>Yes</span><# } else { #><span style='color:red'>No</span><# } #>")
4

2 に答える 2

3

同じことを実現するには、サーバー テンプレートまたはクライアント テンプレートのいずれかを使用する必要があります (グリッドのバインディングによって異なります)。サーバーテンプレートは次のとおりです。

c.Bound( x => x.col4).Template( x => 
{
%>
   <%= (x.col4.HasValue ? "<span style='color:green'>Yes</span>" : "<span style='color:red'>No</span>") %>
<%
});

クライアント側のテンプレートは次のとおりです。

c.Bound( x => x.col4).ClientTemplate("<# if(col4) { #><span style='color:green'>Yes</span><# } else { #><span style='color:red'>No</span><# } #>");
于 2010-12-18T12:28:52.477 に答える
1

行の内容に基づいて行のスタイルを変更するために使用できる、クライアント側の行バインド イベントがあることを発見しました。例えば

    function onGridRowDataBound(e) {
        var row = e.row;
        var dataItem = e.dataItem;

        var eligible = e.row.cells[0].innerHTML.indexOf('Not') >= 0;
        if (eligible) {
            //Set the background of the entire row
            row.style.backgroundColor = "green";
        }
    }
于 2011-02-28T23:25:25.203 に答える