2016-05-16 16 views
0

3つのフィールド(id、description、typeid)を持つ配列リストがあり、そのarraylistをASP DropDownListにバインドしました。バインド中に、説明フィールドをDataTextField、別のフィールド「Id」DataValueFieldに設定しました。3番目の値をドロップダウンリストに割り当てる方法は?

コード:

Dim b As ArrayList 
      b = //Assigning ArrayList 

      Me.drpDwn.DataSource = b 
      Me.drpDwn.DataTextField = "description" 
      Me.drpDwn.DataValueField = "id" 
      Try : Me.drpDwn.DataBind() : Catch ex As Exception : ErrorEmailAlert.SendErrorViaEmail(Server, Session, ex) : End Try 

ユーザーがDropDownListコントロールから値を選択すると、私は型ID値を必要とするも、変数に設定する必要があります。

私が特定のIDを選択した場合でも誰かが "typeid"の価値をどのように得るのか教えてください。

EDIT:選択した値のコードの背後にtypeidの値が必要です。ないID(データ値)値または説明(データフィールド)

+0

[DropDownList、C#で返されるDataValueFieldを取得する]の可能な複製(http://stackoverflow.com/questions/17348678/dropdownlist-getting-datavaluefield-returned-in-c-sharp) – dotNET

+0

私は選択された値のコードの背後にあるtypeidの値。 id(データ値)値または説明(データフィールド)ではない@dotNET – Knowledge2Share

答えて

0

あなたが型IDとIDをCONCATし、このようにドロップダウンリストに追加することができます:

class Item 
{ 
    public int id; 
    public string description; 
    public int typeid; 
} 


void FillDropDown() 
{ 
    List<Item> Items = new List<Item>(); 

    // Fill Items 

    DropDownList.Items.Clear(); 
    Items.ForEach(I => 
    { 
     DropDownList.Items.Add(new ListItem(I.description, I.id + ";" + I.typeid)); 
    }); 
} 
0

すべての結合状況における一般的な考えはあなたということですDataValueFieldに、コレクションの一意の識別子(通常、このデータがデータベースの場合は主キー)をバインドします。ユーザーが項目を選択してサーバーにポストバックすると、プライマリキー値を使用してレコード全体を取得することができます。その結果、他の属性(ケースではtypeid)の値が取得されます。

関連する問題