将数据表绑定到GridView后未显示行 [英] Rows not showing up after binding DataTable to GridView

查看:58
本文介绍了将数据表绑定到GridView后未显示行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

我在ASP.NET/VB.NET中有一个Web应用程序.

这是我第一次使用gridview控件.我正在尝试向GridView添加值.当我按下一个按钮时,它将执行以下简单代码:

将DT设为新的DataTable()

DT.Columns.Add("  String  .Empty.GetType())
DT.Columns.Add("  String  .Empty.GetType())
DT.Columns.Add("  String  .Empty.GetType())

DT.Rows.Add(New 字符串(){"  值" 值"})
DT.Rows.Add(New 字符串(){"  值" 值"})
DT.Rows.Add(New 字符串(){"  值" 值"})

myGridViewControl.DataSource = DT
myGridViewControl.DataBind()



执行代码后,GridView将显示3列标题,但行不存在.我做错了什么?

谢谢.

解决方案

您使用的是绑定字段还是模板字段.对于绑定字段,提及datafield属性就足够了.

如果您在网格内部使用了模板字段,那么您需要绑定该值.
< asp:移除id ="B" runat ="server" text =<%#Eval(" val)%& gt;" =" xmlns:asp =#unknown">

导入系统
导入System.Data
导入System.Configuration
导入System.Web
导入System.Web.Security
导入System.Web.UI
导入System.Web.UI.WebControls
导入System.Web.UI.WebControls.WebParts
导入System.Web.UI.HtmlControls
导入System.Data.OleDb
局部公共类_Default2
    继承System.Web.UI.Page
    私人骗局作为OleDbConnection
    专用da OleDbDataAdapter
    私有dt作为数据表
    私有cmd作为OleDbCommand
    私有查询为字符串

    受保护的子Page_Load(ByVal发件人为对象,ByVal e为EventArgs)
        GridView2.DataSource = createdatatable()
        GridView2.DataBind()
    结束子

    公共函数createdatatable()作为DataTable
        昏暗的dt作为新的DataTable()
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(Integer)) )
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(字符串)))
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(字符串)))
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(字符串)))
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(字符串)))
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType()))
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(Integer)) )
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(字符串)))
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(字符串)))
        dt.Columns.Add(New System.Data.DataColumn(" ,GetType(字符串)))
        Dim dr As DataRow = dt.NewRow()
        dr( 0 )= " 
        dr( 1 )= " 
        dr( 2 )= " 
        dr( 3 )= " 
        dr( 4 )= " 
        dr( 5 )= Convert.ToDouble( 35 . 50 )
        dr( 6 )= Convert.ToInt32( 100 )
        dr( 7 )= " 
        dr( 8 )= " 
        dr( 9 )= " 
        dt.Rows.Add(dr)
        dt.AcceptChanges()
        返回dt
    结束功能


Hello,

I have a Web application in ASP.NET/VB.NET.

This is my first time using the gridview control. I''m trying to add values to a GridView. When I press a button, it executes the following simple code:

Dim DT As New DataTable()

DT.Columns.Add("Column1", String.Empty.GetType())
DT.Columns.Add("Column2", String.Empty.GetType())
DT.Columns.Add("Column3", String.Empty.GetType())

DT.Rows.Add(New String() {"value", "value", "value"})
DT.Rows.Add(New String() {"value", "value", "value"})
DT.Rows.Add(New String() {"value", "value", "value"})

myGridViewControl.DataSource = DT
myGridViewControl.DataBind()



After the code executes, the GridView shows the 3 column headers, but the rows are not there. What am I doing wrong?

Thanks.

解决方案

are you using bound field or template field..? for bound field mentioning the datafield property is enough.

If you have used template field inside the grid then u need to bind the value.
<asp:removed id="B" runat="server" text="<%# Eval(" val")%&gt;"="" xmlns:asp="#unknown">


Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports System.Data.OleDb
Partial Public Class _Default2
    Inherits System.Web.UI.Page
    Private con As OleDbConnection
    Private da As OleDbDataAdapter
    Private dt As DataTable
    Private cmd As OleDbCommand
    Private query As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        GridView2.DataSource = createdatatable()
        GridView2.DataBind()
    End Sub

    Public Function createdatatable() As DataTable
        Dim dt As New DataTable()
        dt.Columns.Add(New System.Data.DataColumn("srno", GetType(Integer)))
        dt.Columns.Add(New System.Data.DataColumn("returnno", GetType(String)))
        dt.Columns.Add(New System.Data.DataColumn("productid", GetType(String)))
        dt.Columns.Add(New System.Data.DataColumn("publisher", GetType(String)))
        dt.Columns.Add(New System.Data.DataColumn("productname", GetType(String)))
        dt.Columns.Add(New System.Data.DataColumn("rate", GetType(Double)))
        dt.Columns.Add(New System.Data.DataColumn("quantity", GetType(Integer)))
        dt.Columns.Add(New System.Data.DataColumn("tradedisc", GetType(String)))
        dt.Columns.Add(New System.Data.DataColumn("specialdisc", GetType(String)))
        dt.Columns.Add(New System.Data.DataColumn("netamount", GetType(String)))
        Dim dr As DataRow = dt.NewRow()
        dr(0) = "1"
        dr(1) = "110"
        dr(2) = "P001"
        dr(3) = "Goyal"
        dr(4) = "English Book"
        dr(5) = Convert.ToDouble(35.50)
        dr(6) = Convert.ToInt32(100)
        dr(7) = "10"
        dr(8) = "5"
        dr(9) = "110.00"
        dt.Rows.Add(dr)
        dt.AcceptChanges()
        Return dt
    End Function


这篇关于将数据表绑定到GridView后未显示行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆