如何在aspxgridview(VB)中使用循环添加自定义列

时间:2012-04-13 03:49:29

标签: asp.net vb.net gridview aspxgridview

第一个问题 如何使用循环将自定义列添加到aspxgridview列以获取列的名称和值。

这是我的代码背后:

Protected Sub gridSubmission_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSubmission.Init
        Dim colBaru As GridViewDataTextColumn = New GridViewDataTextColumn()
    For i As Integer = 1 To 6
        colBaru.Caption = i
        colBaru.FieldName = i
        colBaru.UnboundType = DevExpress.Data.UnboundColumnType.Integer
        colBaru.VisibleIndex = gridSubmission.VisibleColumns.Count
        colBaru.PropertiesTextEdit.DisplayFormatString = "c2"
        gridSubmission.Columns.Add(colBaru)
    Next
end sub

我曾经在aspxgridview上添加新列。 但它得到一个错误,“已经添加了一个具有相同密钥的项目。”

第二个问题, 我必须使用哪些属性来放置该代码?我想在page.load之后加载该代码!如果我放入aspxgridview.init,它会在page.load之前加载。

,输出必须如下:

1           2          3          4           5           6
row         row        row        row         row         row
row         row        row        row         row         row
row         row        row        row         row         row
row         row        row        row         row         row
row         row        row        row         row         row

帮助pelase ...

之前感谢

1 个答案:

答案 0 :(得分:1)

就第一个问题而言,您正在尝试一次又一次地将相同的列对象添加到列中,因此您会收到该错误。尝试在循环中创建列对象 - 例如:

Protected Sub gridSubmission_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSubmission.Init

    For i As Integer = 1 To 6
        Dim colBaru As GridViewDataTextColumn = New GridViewDataTextColumn()
        colBaru.Caption = i
        colBaru.FieldName = i
        ... 

至于第二个问题,我不确定你在这里问的是什么。当你的意思是在page.load之前/之后,是指服务器端的page_load还是客户端(浏览器)端的页面加载?坦率地说,grid_init或page_init是添加列的最佳位置。如果你想在页面上的某个特定事件中添加列,那么最好的方法是在浏览器端设置一些隐藏变量,并使用该变量来决定是否进行这样的初始化。