动态地将列值添加到DataGridview

时间:2009-05-10 04:08:44

标签: asp.net datagridview datasource dynamic

我的datagridview中有三列。一个是文本,一个是Combo,另一个是Text ...我不想使用datasource想在像cellgridview.Rows []。cells []这样的单元格上添加值。值。帮帮我怎么做?我的数据库有几列...如何动态添加列值....

3 个答案:

答案 0 :(得分:1)

我只需要做同样的事情......这里是你添加一个列的方法。

If Not IsPostBack Then <br>

        Dim field As New TemplateField
        field.HeaderText = "Name of Column"
        Dim col As DataControlField = field
        GridView.Columns.Add(col)

        End If

**在Gridview_rowcreated Sub

e.row.cells(cellnumber from 0 to N).controls.Add(data)

您将不得不创建连接和连接字符串

这是一个例子......

Dim Dbconn As SqlConnection
Dim Dbcmd As SqlCommand

Dbcmd = New Data.SqlClient.SqlCommand()
Dbcmd.Connection = Dbconn
Dbcmd.CommandType = Data.CommandType.Text

Dbcmd.Commandtext = "select * from table"
dbconn.open()

//then you need a data reader

dim dr as sqlclient.sqldatareader
dr = dbcmd.executereader
while dr.read
add each item to a list
end while

然后在页面加载时将网格的数据源设置为列表

希望这有帮助...如果您有任何问题,请问我。

答案 1 :(得分:0)

我强烈建议您使用Repeater而不是datagridview,并根据需要渲染任意数量的列。

.aspx代码

<tr>
    <asp:Repeater ID="rptDayHeaders" runat="server">
        <ItemTemplate>
            <td>
                <strong><asp:Literal ID="ltMonthHeader" runat="server"></asp:Literal></strong>
            </td>
        </ItemTemplate>
    </asp:Repeater>
</tr>

.aspx.vb代码

rptDayHeaders.DataSource = daysList
rptDayHeaders.DataBind()

其中dayslist需要是您想要的列数的数组。

我们使用相同的方法生成完整的甘特图

答案 2 :(得分:0)

尝试一下

的内容
dataGrid.Rows.Add(new object[] { "value1", 42, "value3"});