我在下面定义了一个示例类:
class Shops : INotifyPropertyChanged
{
private int _productId;
private string _productName;
private List<string> _test;
private bool _active;
public int ProductId
{
get { return _productId; }
set { _productId = value; }
}
public string ProductName
{
get { return _productName; }
set { _productName = value; }
}
public List<string> Test
{
get { return _test; }
set { _test = value; }
}
public bool Active
{
get { return _active; }
set { _active = value; }
}
}
当我将其数据绑定到DataGridView时,除Test之外的所有内容都被正确绑定。 Active的复选框也是在datagridview中自动创建的。
有没有办法告诉数据绑定列表需要绑定为ComboBox?
感谢您的时间。
答案 0 :(得分:1)
我假设您正在尝试将列表绑定到标记为ComboBox的Column Cell。
您需要在数据网格“Columns”集合中指定列,并为列设置数据绑定。如果您已经这样做了,请发布更详细的说明。
答案 1 :(得分:1)
试试这个,使用模板字段添加组合框,然后将数据添加到OnRowDataBound事件中。
<asp:GridView ID="GridView1" runat="server"
OnRowDataBound="bindCombobox">
<Columns>
//other columns
<asp:TemplateField HeaderText="status" >
<ItemTemplate>
<asp:DropDownList ID="comboBox1" runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在后面的代码中:
public void bindComboBox(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.DataRow)
{
return;
}
DropDownList ddlist = (DropDownList)e.Row.FindControl("comboBox1");
ddlist.AppendDataBoundItems = true;
ddlist.DataSource = Test; //insert your list here
ddlist.DataBind();
}