テンプレートフィールドを次のように使用して、グリッドビューにドロップダウンを追加しています。
<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;
しかし、ドロップダウンリストから任意の値を選択すると、次のように例外が発生します。
インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス
既に述べたように、選択した行のインデックス番号を取得しています。そこからインクリメントして、バックカラー プロパティも使用できませんか?