C#DataBinding List <string>到DataGridColumn </string>

时间:2011-03-25 20:27:34

标签: c# data-binding datagridview

我在下面定义了一个示例类:

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?

感谢您的时间。

2 个答案:

答案 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();

        }