2

テンプレートフィールドを次のように使用して、グリッドビューにドロップダウンを追加しています。

 <asp:TemplateField HeaderText="Change Color">
                    <ItemTemplate>
                        <asp:DropDownList ID="dropdownid" DataSourceID="sqldatasource_id" DataTextField="username"
                            BackColor="GrayText"  OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AppendDataBoundItems="True" runat="server" AutoPostBack="True">

                            <asp:ListItem Text="--Select One--" Value="" Selected="True" />
                        </asp:DropDownList>

SqlDataSource は次のとおりです。

 <asp:SqlDataSource ID="sqldatasource_id" runat="server" ConnectionString="<%$ ConnectionStrings:crudconnection %>"
            SelectCommand="SELECT [username] FROM [crudtable]"></asp:SqlDataSource>

Indexchange-Event は次のとおりです。

 protected void GridView1_SelectedIndexChanged(object sender,EventArgs e)
    {


    }

対応するドロップダウンリストの値が選択されたときに行を強調表示したい。どうすればできますか?

前もって感謝します。


私はそれを試してみました:

  GridView1.Rows[GridView1.SelectedIndex].BackColor = Color.Red;

しかし、ドロップダウンリストから任意の値を選択すると、次のように例外が発生します。

インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス

既に述べたように、選択した行のインデックス番号を取得しています。そこからインクリメントして、バックカラー プロパティも使用できませんか?

4

5 に答える 5

1

これを試してみませんか:

GridView1.Rows[GridView1.SelectedIndex].BackColor = Color.Redあなたの中にGridView1_SelectedIndexChanged

選択した行の背景色を赤色に設定する必要があります

于 2012-07-30T10:17:59.590 に答える
0

GridView_SelectedIndexChanging() を試してください。方法は次のとおりです。

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
    //This is current row. Set it to default color
    GridView1.SelectedRow.BackColor = System.Drawing.Color.White;

    //This is selected row. Set it to color you wish
    GridView1.Rows[e.NewSelectedIndex].BackColor = System.Drawing.Color.Black;
}
于 2012-07-30T10:20:00.807 に答える
0

関数 ChangeRowColor(行) {

        row = parseInt(row) + 1;

        if (previousRow == row)
            return; //do nothing
        else if (previousRow != null) {
            document.getElementById("MainContent_gvSimulationManager").rows[previousRow].style.backgroundColor = previouscolor;
        }
        previouscolor = document.getElementById("MainContent_gvSimulationManager").rows[row].style.backgroundColor;
        document.getElementById("MainContent_gvSimulationManager").rows[row].style.backgroundColor = "#888888";

        previousRow = row;

        //Disable and enable Session
        var simulationStatus = document.getElementById("MainContent_gvSimulationManager").rows[row].cells[3].innerText;

        EnableAndDisable(simulationStatus);
于 2013-02-07T07:52:51.650 に答える
0

以下のような変更を加えました。

  int abc=row.rowindex+3;
 GridView1.Rows[abc].BackColor = Color.Yellow;

ご支援ありがとうございます。

于 2012-07-30T11:31:26.400 に答える