将gridview字段转换为Dropdownlist

时间:2014-01-23 17:30:12

标签: c# asp.net drop-down-menu grid runtime

我需要将gridview中的字段转换为下拉列表, 但我需要在代码隐藏中执行此操作,并且我无法在apsx中添加模板字段(但它可以在运行时执行时创建...) 我用这段代码填充我的网格:

        foreach (var item in response.Select(x => x.idMatriz).Distinct())
        {
            dr = dt.NewRow();
            for (int i = 0; i < colunas; i++)
            {
                dr[i] = response.Where(x => x.Propriedade == dt.Columns[i].ToString() && x.idMatriz == item).Select(x => x.Valor).FirstOrDefault();
            }
            dt.Rows.Add(dr);
        }

它有效,但我需要这个文件是一个下拉列表.... 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

看起来您需要做的就是动态创建模板字段并将其添加到gridview。

var field = new TemplateField {HeaderText = col.ColumnName}
gridView.Columns.Add(field);

之后,在gridview的行创建事件上创建并连接下拉列表。

    public void DynamicGridView_RowCreated(object sender, GridViewRowEventArgs e)
    {

        if (e.Row.RowType != DataControlRowType.DataRow)
        {
            return;
        }

        var grid = sender as GridView;
        if (grid == null)
        {
            return;
        }

        for (var i = 0; i < grid.Columns.Count; i++)
        {
            var column = grid.Columns[i] as TemplateField;
            if (column == null)
                continue;

            var cell = e.Row.Cells[i];
            var dropdown = new DropDownList();
            cell.Controls.Add(dropdown);
        }
    }