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