Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在gridview中添加新行_Asp.net_Vb.net_Gridview - Fatal编程技术网

Asp.net 在gridview中添加新行

Asp.net 在gridview中添加新行,asp.net,vb.net,gridview,Asp.net,Vb.net,Gridview,更新 从这里我绑定了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)),

更新

从这里我绑定了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
ID Name
1  abc
2  def
(here new empty row when click on button )
这显示了与添加新行和替换gridview中已有的先前数据相同的输出,同时也显示了一个错误 对象引用未设置为对象的实例

单击“添加新行”后

ID Name
像这样我想去哪里

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
ID Name
1  abc
2  def
(here new empty row when click on button )

正如在你的帖子评论中指出的,问题在于以下两行:

Dim dt As New DataTable()
...
gridview1.DataSource = dt
这将创建一个全新的
数据表
,并将网格视图绑定到它。您不会复制数据,也不会更改现有gridview的表


这里正确的修复方法是从gridview的数据源获取
DataTable
,并对其进行所需的任何更改。不要创建新的
数据表

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

 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

这是vb代码。为什么在这里添加c#标记?每次单击按钮1时,都会创建一个全新的数据表,并将其绑定到DGV
如果dt.Columns.Count=0,则不需要
,因为它始终为真。因此,如果dt.Columns.Count=0,则删除此行?不要创建新的数据表。使用现有的请检查更新问题是的,我这样做了,我使用现有的数据表,但这显示相同的请检查更新问题这显示错误。。错误126未定义类型“gridview1.DataSource”。