使用数组中的索引作为数据值?
与弗莱姆的解决方案非常相似,但更简单。它使用Select
方法的一个过载,其中在当前item
旁边的是它被传递的index
。
ddl.DataSource = arrayOfStrings.Select((text, index) => new { text, index })
.ToList();
ddl.DataValueField = "index";
ddl.DataTextField = "text";
ddl.DataBind();
@IIyaIvano我喜欢它,但对我的帖子的评论本来是合适的。 +1。 – 2013-03-21 19:42:14
@flem当我看到你发布了你的帖子时,我几乎已经写完了我的帖子,所以这并不像我完全窃取你的答案。对不起,如果有任何不好的想法出现在你脑海中 – 2013-03-21 19:43:53
在这里,你走了,通知我可是从我的数据集设置数据文本和值字段到特定的列。
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("Select * from country", cn);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(ds);
Dropdownlist1.DataSource = ds;
Dropdownlist1.DataTextField = "CountryName";
Dropdownlist1.DataValueField = IndexOf("CountryID");
Dropdownlist1.DataBind();
您需要一个值来绑定而不是计算。做一个强大的班级,或者在下面的例子中用一个快速而简单的匿名类型做这件事。
List<string> ds = yourlist;
ddl.DataSource = yourlist
.Select(s => new
{
Text = s,
Value = yourlist.IndexOf(s)
})
.ToList();
ddl.DataValueField = "Value";
ddl.DataTextField = "Text";
ddl.DataBind();
+1 Flemster,欢迎回来;) – mattytommo 2013-03-21 19:40:49
So ddl.DataValue =“IndexOf”; ? – jmasterx 2013-03-21 19:28:16