GetColumn DataTable in

时间:2014-06-03 19:19:00

标签: c# asp.net webforms

我有DataTable

DataTable dt = new DataTable ();
dt.Load (..etc..

使用以下数据(示例):

str_foto   int_ID   strRef
--------------------------
1.jpg        1      tesxt01
2.jpg        2      Teszt02

等。

我有DropDownList

DDL_Imagens.DataSource = dt;
DDL_Imagens.DataTextField = "strRef";
DDL_Imagens.DataValueField = "int_ID";
DDL_Imagens.DataBind ();

我想为每个项目添加一个属性。

for (int i = 0; i <DDL_Imagens.Items.Count; i + +)
{
       ListItem item = DDL_Imagens.Items[i];
       item.Attributes ["data-img-src"] = dt.Rows[0].DataBoundItem;//???
}

如何将str_foto中的DataTable列添加到DropDownList

我试过了:

dt.Rows.Rows[0].DataBoundItem;
dt.Rows.Rows[0].ToString();

最终结果应为:

<select name="ctl00$MainContent$DDL_Imagens" id="ctl00_MainContent_DDL_Imagens">
    <option value="11713536" data-img-src="1.jpg">100</option>
    <option value="11753979" data-img-src="2.jpg">434</option>
    <option value="11754913" data-img-src="3.jpg">rtr4</option>
</select>

2 个答案:

答案 0 :(得分:2)

你可以做这样的事情

for (int i = 0; i <DDL_Imagens.Items.Count; i + +)
   {
       ListItem item = DDL_Imagens.Items[i];
       item.Attributes.Add("data-img-src", Convert.ToString(dt.Rows[i][0]))
   }

或者

for (int i = 0; i <DDL_Imagens.Items.Count; i + +)
       {
           ListItem item = DDL_Imagens.Items[i];
           item.Attributes.Add("data-img-src", Convert.ToString(dt.Rows[i]["str_foto"]))
       }

希望这有帮助

答案 1 :(得分:0)

我认为正确的语法是:

item.Attributes.Add("data-img-src", dt.Rows.Rows[0].DataBoundItem);

而不是:

item.Attributes ["data-img-src"] = dt.Rows.Rows[0].DataBoundItem;//???