【问题标题】:add new row in gridview在gridview中添加新行
【发布时间】:2017-11-08 06:37:08
【问题描述】:

更新

从此我绑定gridview

Public Function uplif() As DataTable
        Dim dt As New DataTable()
        gridvieew1.Visible = True

        Try

            dt.Columns.AddRange(New DataColumn(1) {New DataColumn("ID", GetType(Integer)),
                                                   New DataColumn("Name", GetType(String))}
            Dim Content As String = Request.Form(textbox1.UniqueID)
            For Each row As String In Content .Split(ControlChars.Lf)
                If Not String.IsNullOrEmpty(row) Then
                    dt.Rows.Add()
                    Dim i As Integer = 0
                    For Each cell As String In row.Split(ControlChars.Tab)
                        If i > 1 Then
                            labelmessage.Text = "More than 2 columns not Allowed !!"
                            textbox1.Text = ""
                        Else
                            If cell.Trim() = "" Then
                                cell = "0"
                            End If
                            dt.Rows(dt.Rows.Count - 1)(i) = cell
                            i += 1
                        End If
                    Next
                End If
            Next
             gridvieew1.DataSource = dt
             gridvieew1.DataBind()

        Catch Ex As Exception
            labelmessage.CssClass = "alertNo"
            labelmessage.Text = Ex.Message
        End Try
        Return dt
    End Function

  Protected Sub PasteToGridView(sender As Object, e As EventArgs)
        uplif()

    End Sub

现在当我尝试像这样添加新行时

Private Sub AddNewRowToGrid()
        Dim dt As DataTable = uplif()
        Dim NewRow As DataRow = dt.NewRow()
        dt.Rows.Add(NewRow)
         gridvieew1.DataSource = dt
         gridvieew1.DataBind()
    End Sub

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        AddNewRowToGrid()
    End Sub

这显示相同的输出,例如添加新行并替换已经在 gridview 中的先前数据,并且这也显示错误 对象引用未设置为对象的实例。

点击后添加新行

ID Name

我想要这样的地方

ID Name
1  abc
2  def
(here new empty row when click on button )

【问题讨论】:

  • 这是vb代码。为什么你在这里添加了c#标签?
  • 每次单击 Button1 时,都会创建一个全新的 DataTable 并将其绑定到您的 DGV。 If dt.Columns.Count = 0 Then不是必需的,因为它总是正确的。
  • 所以我删除了这一行 If dt.Columns.Count = 0 Then?
  • 不要创建新的数据表。使用现有的
  • 请检查更新问题

标签: asp.net vb.net gridview


【解决方案1】:

正如对您帖子的评论中指出的那样,问题出在以下两行:

Dim dt As New DataTable()
...
gridview1.DataSource = dt

这将创建一个全新的DataTable 并将网格视图绑定到它。您不会复制数据,也不会更改现有 gridview 的表格。

这里的正确解决方法是从 gridview 的 DataSource 中获取 DataTable 并对其进行任何您需要的更改。不要创建新的DataTable。

【讨论】:

  • 是的,我这样做我使用现有的数据表,但这显示相同,请检查更新问题
【解决方案2】:

获取已经分配的DataSource,然后添加Row。不要添加列,因为它已经存在于您的数据源中

 Private Sub AddNewRowToGrid()
        Dim dt As gridview1.DataSource       
        Dim NewRow As DataRow = dt.NewRow()
        dt.Rows.Add(NewRow)
        gridview1.DataSource = dt
        gridview1.DataBind()
    End Sub

 Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    AddNewRowToGrid()
End Sub

【讨论】:

  • 这显示一个错误.. 错误 126 类型 'gridview1.DataSource' 未定义。
猜你喜欢
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
相关资源
最近更新 更多