0

私は文字列または整数のどちらかを好みますが、ビットに基づいて解決します。

目標は、文字列フィールドの値 == '何とか何とか' の場合、その行全体が灰色になります (赤と緑が既に使用されている青いテーブルなので、他の色の提案を受け入れることができます)。

私はもう試した

.RowAction(row =>
    {
        if (row.DataItem.[Bound Data col Name] == "[String value]")
        {
            row.HtmlAttributes["style"] = "background:grey;";
        }
    }) 

.RowAction(row =>
    {
        if (row.DataItem.[Bound Data col Name] == "[String value]")
        {
            row.Grid.HtmlAttributes["style"] = "background:grey;";
        }
    }) 

.ClientEvents(events => events.OnRowDataBound("onRowDataBound"))
function onRowDataBound(e) {
    if (e.dataItem.[Bound Data col Name] == "[String value]") {
        e.row.style.backgroundColor = "grey";
    }
}

これらはすべて少しも機能しませんでした。これらは、これを行う方法に関する mvc の唯一の明確な例なので、誰かアイデアを得ましたか?

4

1 に答える 1

3

永遠に時間がかかりましたが、telerik は最終的に、オープン ソース バージョンの Cellaction にバグがあったことを認めました。 action-issue-evidence-provided.aspx)、2 つのロックされたトピックだけで、私がずっと言ってきたことを最終的に受け入れてくれました。

簡単に言えば、このようなことをしたい場合は、Cellaction で問題が発生した場合、商用バージョンを購入するか、以下の手順に従ってください。

色を変更したいセルごとに DTO にフィールドを追加するだけです。私の場合、現在の日付にどれだけ近いかによって色が変わる 6 つの日付がありました。

次に、コントローラーですべての日付計算を行い、どれだけ近づいたかに応じて、対応する DTO アイテムに色を記録します。

例えば

public String DateDisplay1
public String DateDisplay1Colour

次に、グリッド上の色の項目を非表示にし、その値を使用して DateDisplay1 がオンになっている行の色を変更します。

したがって、DateDisplay1 が行 1 にある場合、onRowDataBound(e) 関数には次のようなものがあります。

if (e.dataItem.DateDiplay1Colour == "Green") {

        e.row.cells[1].style.backgroundColor = "#7EDF7D";
    }

このようにして、セルに日付を表​​示し、対応する非表示の値に基づいて色を表示できます。

管理者権限でも同じことができるので、ユーザーが管理者でない場合は

row.cells[6].innerHTML = '<readonly>' + "Edit" + '</readonly>';

したがって、リンクを削除して、ユーザーがそのレコードを編集できるようにします。

これが一部の人に役立つことを願っています.telekが私のトピックのロックを解除して、私が見つけた解決策を追加できるようになることを願っています.

于 2011-07-26T14:40:47.790 に答える