2014-04-30 26 views
0

我有一個下拉在我綁定一個List,如:如何添加一個額外的屬性在下拉列表在C#

var ddlLst2 = new List<string> { "Audi", "BMW", "Ford", "Vauxhall"}; 
ddlLst2.Sort(); 

foreach (var item in ddlLst2) 
{ 
    DropDownList2.Items.Add(new ListItem(item)); 

} 

結果:

<select id="DropDownList2" onchange="javascript:setTimeout('__doPostBack(\'DropDownList2\',\'\')', 0)" name="DropDownList2"> 

    <option value="--Please Select--" selected="selected"></option> 
    <option value="Audi"></option> 
    <option value="BMW"></option> 
    <option value="Ford"></option> 
    <option value="Vauxhall"></option> 

</select> 

但我想在每個項目中添加一個屬性,預計結果如下:

預期結果:

<select id="DropDownList2" onchange="javascript:setTimeout('__doPostBack(\'DropDownList2\',\'\')', 0)" name="DropDownList2"> 

    <option value="--Please Select--" selected="selected"></option> 
    <option value="Audi" code="1"></option> 
    <option value="BMW" code="2"></option> 
    <option value="Ford" code="3"></option> 
    <option value="Vauxhall" code="4"></option> 

</select> 

正如您在上面看到的,還有一個額外的屬性添加了"code",code的值來自查詢。

回答

1
foreach (var item in ddlLst2) 
      { 
       ListItem tmp = new ListItem(); 
       tmp.Text = item.ToString(); 
       tmp.Attributes.Add("AttribName", "AttribValue"); 
       DropDownList2.Items.Add(tmp); 

      } 

或類似的東西...玩弄TMP的可用屬性...

0

對於JS事件:您可以從您的JavaScript subscripe它。即使用jQuery: $('#DropDownList2').change(function() { alert("Fired!"); });

1
void Main() 
{ 
var ddlLst2 = new List<string> { "Audi", "BMW", "Ford", "Vauxhall"}; 
     ddlLst2.Sort(); 

     var ctrls = new List<ListItem>(); 
     int i =0; 
     foreach (var item in ddlLst2) 
     { 
      //DropDownList2.Items.Add(new ListItem(item)); 
      ListItem li = new ListItem(item); 
      li.Attributes.Add("code", i.ToString()); 
      ctrls.Add(li); 
      i++; 
     } 

     foreach (ListItem element in ctrls) 
     { 
      Console.WriteLine(element.Attributes["code"]); 
     } 
} 
0
protected void dropdownlist_DataBound(object sender, EventArgs e) 
    { 
     DataTable dt = new DataTable(); 
     DataView dv = (DataView)sqldatasource.Select(DataSourceSelectArguments.Empty); 
     dt = dv.ToTable(); 

     foreach (DataRow dr in dt.Rows) 
     { 
      dropdownlist.Items.FindByValue(dr[0].ToString()).Attributes.Add("attr0", dr[2].ToString()); 
      dropdownlist.Items.FindByValue(dr[0].ToString()).Attributes.Add("attr1", dr[3].ToString()); 
      dropdownlist.Items.FindByValue(dr[0].ToString()).Attributes.Add("attr2", dr[4].ToString()); 

     } 

    } 
相關問題