我想将数据源添加到下拉列表中。此下拉列表是gridview的列之一。在这里,我想动态地将数据源添加到下拉列表,而不使用sqldatasource。
(vs2008和c#)
答案 0 :(得分:1)
您可以为网格中的下拉列表控件实现OnDataBinding事件。如果您可以将DataSource属性和其他属性分配给您喜欢的任何内容。将它绑定到List<YourObject>
偶数。
在OnDataBinding事件上执行此操作还允许您动态自定义ddl中的值。因此,如果您需要这种类型的功能,每行的ddl可以根据行中的其他一些数据提供不同的选项集。
如果使用OnDataBinding方法而不是自动(简易模式)连线,则使用ASP.NET控件可以获得很多灵活性。
答案 1 :(得分:1)
是的,因为它在itemtemplate中,所以你不会直接得到它,你必须使用findcontrol
答案 2 :(得分:0)
以下是您要查找的代码
示例1:
public enum Color
{
RED,
GREEN,
BLUE
}
每个枚举类型都派生自System.Enum。有两种静态方法可以帮助将数据绑定到下拉列表控件(并检索值)。这些是Enum.GetNames和Enum.Parse。使用GetNames,您可以按如下方式绑定到下拉列表控件:
protected System.Web.UI.WebControls.DropDownList ddColor;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
ddColor.DataSource = Enum.GetNames(typeof(Color));
ddColor.DataBind();
}
}
示例2:
List<Person> myPList = new List<Person>();
Person p1 = new Person();
p1.ID = 1;
p1.Name = "Bob";
p1.Color = "Blue";
Person p2 = new Person();
p2.ID = 2;
p2.Name = "Joe";
p2.Color = "Green";
myPList.Add(p1);
myPList.Add(p2);
this.DropDownList1.DataSource = myPList;
this.DropDownList1.DataTextField = "Color";
this.DropDownList1.DataValueField = "ID";
this.DropDownList1.DataBind();
有关更完整的练习,请点击此处: https://stackoverflow.com/a/9076237/132239
也不要忘记总是将答案标记为答案