我有两个GridViews,第一个工作正常,因为当我通过visual studio将它放到asp页面时我定义了数据源并指定了要使用的表。
其他GridView(下面的dgvParams)刚刚被放到asp页面上,我想在运行时使用它:
Imports System.Data
Imports System.Data.SqlClient
Imports myDataBase
Partial Class TestWeb
Inherits System.Web.UI.Page
Dim data As New cDatabase
Public Sub New()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
dgvParams = New GridView
LoadParamsGrid()
End Sub
Public Sub LoadParamsGrid()
' Create the dataset
Dim strCon As String = data.DBConn.ConnectionString
Dim strSQL As String = "dbo.GetParameters"
Dim dataAdapter As New SqlDataAdapter(strSQL, strCon)
Dim table As New DataTable
Try
dataAdapter.Fill(table)
Catch ex As Exception
' try again
dataAdapter.Fill(table)
End Try
dgvParams.DataSource = table
dgvParams.DataBind()
End Sub
End Class
当我单步执行代码时,我可以看到行和列计数符合预期,并调用“dgvParams.DataSource = table”。
我想我错过了某个地方的另一个步骤,以便我可以在GridView上实际查看数据?有什么建议吗?
谢谢
答案 0 :(得分:1)
dgvParams上的AutoGenerateColumns属性是设置为True还是已经明确定义的列?
答案 1 :(得分:0)
我指责将表格用于数据集,它只是“工作”......虽然不是马上就行!不确定是什么使这项工作,但这是我现在使用的:
Dim ds As New DataSet
Try
dataAdapter.Fill(ds)
Catch ex As Exception
' try again
dataAdapter.Fill(ds)
End Try
dgvParams.DataSource = ds.Tables(0)
dgvParams.DataBind()
答案 2 :(得分:0)
你有:
dgvParams = new GridView();
但我看不到你把它添加到网页的哪个位置,所以你可以看到它。必须将任何动态创建的控件添加到页面的控件集合或其他控件,如:
panel.Controls.Add(dgvParams);
其中,面板用于标记要在网页中放置gridview的位置。或者,嵌入页面,给它dgvParams ID,然后绑定到它。
或者,如果你已经在页面中有dgvParams,则删除dgvParams = new GridView()语句。
此外,如果绑定到数据集,则需要将DataMember设置为数据表名称,以便它知道要绑定到哪个表。
HTH。