2012-04-20 18 views
3

私はC#ASP.netを使用しており、比較的新しいものであり、以下を達成する必要があります。ASP.net Gridview Itemtemplateドロップダウンリスト

私のVS2010 Webアプリケーションプロジェクトでは、webformにはGridviewがあり、テーブルからデータを取得します。

グリッドでは、Commandfiledボタン(column1)とアイテムテンプレートDropdownlist(column2)を持っています。

ユースケースでは、ユーザーはまず3つのリスト項目(H、L、M)からlistitemを1つ選択し、コマンドボタンを選択します。

私が選択した行から事前に

protected void GridView2_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    GridViewRow row = GridView2.SelectedRow; 
    Label4.Text = "You selected " + row.Cells[4].Text + "."; 
    Label5.Text = "You selected this list item from dropdownlist " + ???? ; 
} 

感謝を選択listitemを抽出する方法を把握することはできませんよ。

答えて

2

GridViewRowオブジェクトは、すべてのコンテナコントロールと同様にメソッドFindControlを提供し、そのIDで行のコントロールにアクセスします。たとえば、あなたのDropDownListMyDropDownのIDを持っている場合、あなたはその選択した値にアクセスするには、次の使用することができます

GridViewRow row = GridView2.SelectedRow; 
DropDownList MyDropDown = row.FindControl("MyDropDown") as DropDownList; 
string theValue = MyDropDown.SelectedValue; 
// now do something with theValue 

をこれはあなたのGridView内のすべてのコントロールにアクセスするための推奨される方法です。可能であればrow.Cells[#]のような作業を避けたいのです。GridViewから列を並べ替えたり追加したり削除したりすると、簡単に破損するためです。

+0

セルインデックスを回避するためのソリューションとヒントありがとうございました – user219628

関連する問題