1

データバインドされた ListView をレンダリングするとき、結果に応じて各行の背景色を動的に設定したいと思います。私の場合は赤、オレンジ、緑です。

        protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
    {
        DataRow myRow;
        DataRowView myRowView;
        myRowView = (DataRowView)e.Item.DataItem;
        myRow = myRowView.Row;

        if (myRow[2].ToString().CompareTo("") == 1)
        {
          // Colour coding here..    
        }

    }

各行の TR タグにアクセスしてスタイルを変更することはできますか?

どうもありがとう、ステファン

4

2 に答える 2

1

サーバー側のコードを使用するには、TR タグに runat="server" を含める必要があります。ただし、アイテムの子であるコントロールを調べることで、それなしで挿入できる場合があります。HTMLにはおそらくLiteralまたはLiteralControlがあり、文字列操作を使用して注入できます...

于 2010-08-12T12:41:05.493 に答える
0

ブライアンの助けを借りて、問題の解決策を見つけました。

ListViewがあり、idタグ(trRow)とタグrunat="server"を次のように追加しました。

<AlternatingItemTemplate>
            <tr id="trRow" runat="server" style="background-color:#FFF8DC;">

その背後にあるコードでは、次のようになります。

        protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
    {
        DataRow myRow;
        DataRowView myRowView;
        myRowView = (DataRowView)e.Item.DataItem;
        myRow = myRowView.Row;

        System.Web.UI.HtmlControls.HtmlTableRow myTR = (System.Web.UI.HtmlControls.HtmlTableRow)e.Item.FindControl("trRow");

        if (myRow[2].ToString().CompareTo("") == 1)
        {
            myTR.Style.Value = "background-color:#FF0000;color: #000000;";
        } else
            myTR.Style.Value = "background-color:#00FF00;color: #000000;";

    }

各行の背景色を動的に変更する問題をどのように解決したかを示すために、そこにあるロジックの一部はまだ正しくありません。

于 2010-08-12T14:23:18.660 に答える