Asp.net vb.net asp单击按钮在gridview中查找以编程方式创建的文本框控件值

Asp.net vb.net asp单击按钮在gridview中查找以编程方式创建的文本框控件值,asp.net,vb.net,gridview,dynamic,textbox,Asp.net,Vb.net,Gridview,Dynamic,Textbox,我是vb.net aspx编程新手。下面是一个类似于示例的代码,它在同一行的gridview单元格中创建了15个textbox控件。 我有一个按钮将文本框中的值保存到数据库 Protected Sub MaliyetGrid_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles MaliyetGrid.RowDataBound txtPrimVergiKesinti As New TextBox()

我是vb.net aspx编程新手。下面是一个类似于示例的代码,它在同一行的gridview单元格中创建了15个textbox控件。 我有一个按钮将文本框中的值保存到数据库

Protected Sub MaliyetGrid_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles MaliyetGrid.RowDataBound
     txtPrimVergiKesinti As New TextBox() 
     Dim txtPrimVergiKesintiValue as String  
     txtPrimVergiKesinti.ID = "txtPrimVergiKesinti"  
     txtPrimVergiKesinti.Width = 45 
     txtPrimVergiKesinti.Font.Size = "10" 
     txtPrimVergiKesinti.CssClass = "auto-style3" 
     txtPrimVergiKesinti.TextMode = TextBoxMode.Number 
     txtPrimVergiKesinti.Text = TryCast(e.Row.DataItem, DataRowView).Row("primdenvergioran").ToString() 
     e.Row.Cells(14).Controls.Add(txtPrimVergiKesinti) 
End Sub
当我点击save按钮时,我想得到每个文本框的值。对于这个示例,我编写了下面的代码

Protected Sub SaveButton_Click(sender As Object, e As EventArgs) Handles     SaveButton.Click 
     txtPrimVergiKesintiValue = CType(Me.MaliyetGrid.FindControl("txtPrimVergiKesinti"), TextBox).Text 
End Sub
它总是返回错误:
{“对象引用未设置为对象的实例。”}
。 如何获取要保存到数据库中的文本框的值

谢谢

我只是改变了代码如下,仍然得到相同的错误

Dim txtYear As New TextBox()
Dim txtMonth As New TextBox()
Dim txtKidemOran As New TextBox()
Dim txtMaasOran As New TextBox()
Dim txtNicelikOran As New TextBox()
Dim txtSatisPrimOran As New TextBox()
Dim txtDestekPrimOran As New TextBox()
Dim txtVergiOran As New TextBox()
Dim txtTeamLiderPrimOran As New TextBox()
Dim txtSatisciPrimOran As New TextBox()
Dim txtSatiscidanTLyePrimOran As New TextBox()
Dim txtYukTakipPrimOran As New TextBox()
Dim txtBeklenenKur As New TextBox()
Dim txtGercekKur As New TextBox()
Dim txtPrimVergiKesinti As New TextBox()

Protected Sub MaliyetGrid_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles MaliyetGrid.RowCreated
    Select Case e.Row.RowType
        Case DataControlRowType.DataRow

            txtYear.ID = "txtYear"
            txtYear.Width = 45
            txtYear.Font.Size = "10"
            txtYear.CssClass = "auto-style3"
            txtYear.TextMode = TextBoxMode.Number
            e.Row.Cells(0).Controls.Add(txtYear)

            txtMonth.ID = "txtMonth"
            txtMonth.Width = 45
            txtMonth.Font.Size = "10"
            txtMonth.CssClass = "auto-style3"
            txtMonth.TextMode = TextBoxMode.Number
            e.Row.Cells(1).Controls.Add(txtMonth)

            txtKidemOran.ID = "txtKidemOran"
            txtKidemOran.Width = 45
            txtKidemOran.Font.Size = "10"
            txtKidemOran.CssClass = "auto-style3"
            txtKidemOran.TextMode = TextBoxMode.Number
            e.Row.Cells(2).Controls.Add(txtKidemOran)

            txtMaasOran.ID = "txtMaasOran"
            txtMaasOran.Width = 45
            txtMaasOran.Font.Size = "10"
            txtMaasOran.CssClass = "auto-style3"
            txtMaasOran.TextMode = TextBoxMode.Number
            e.Row.Cells(3).Controls.Add(txtMaasOran)

            txtNicelikOran.ID = "txtNicelikOran"
            txtNicelikOran.Width = 45
            txtNicelikOran.Font.Size = "10"
            txtNicelikOran.CssClass = "auto-style3"
            txtNicelikOran.TextMode = TextBoxMode.Number
            e.Row.Cells(4).Controls.Add(txtNicelikOran)

            txtSatisPrimOran.ID = "txtSatisPrimOran"
            txtSatisPrimOran.Width = 45
            txtSatisPrimOran.Font.Size = "10"
            txtSatisPrimOran.CssClass = "auto-style3"
            txtSatisPrimOran.TextMode = TextBoxMode.Number
            e.Row.Cells(5).Controls.Add(txtSatisPrimOran)

            txtDestekPrimOran.ID = "txtDestekPrimOran"
            txtDestekPrimOran.Width = 45
            txtDestekPrimOran.Font.Size = "10"
            txtDestekPrimOran.CssClass = "auto-style3"
            txtDestekPrimOran.TextMode = TextBoxMode.Number
            e.Row.Cells(6).Controls.Add(txtDestekPrimOran)

            txtVergiOran.ID = "txtVergiOran"
            txtVergiOran.Width = 45
            txtVergiOran.Font.Size = "10"
            txtVergiOran.CssClass = "auto-style3"
            txtVergiOran.TextMode = TextBoxMode.Number
            e.Row.Cells(7).Controls.Add(txtVergiOran)

            txtTeamLiderPrimOran.ID = "txtTeamLiderPrimOran"
            txtTeamLiderPrimOran.Width = 45
            txtTeamLiderPrimOran.Font.Size = "10"
            txtTeamLiderPrimOran.CssClass = "auto-style3"
            txtTeamLiderPrimOran.TextMode = TextBoxMode.Number
            e.Row.Cells(8).Controls.Add(txtTeamLiderPrimOran)

            txtSatisciPrimOran.ID = "txtSatisciPrimOran"
            txtSatisciPrimOran.Width = 45
            txtSatisciPrimOran.Font.Size = "10"
            txtSatisciPrimOran.CssClass = "auto-style3"
            txtSatisciPrimOran.TextMode = TextBoxMode.Number
            e.Row.Cells(9).Controls.Add(txtSatisciPrimOran)

            txtSatiscidanTLyePrimOran.ID = "txtSatiscidanTLyePrimOran"
            txtSatiscidanTLyePrimOran.Width = 45
            txtSatiscidanTLyePrimOran.Font.Size = "10"
            txtSatiscidanTLyePrimOran.CssClass = "auto-style3"
            txtSatiscidanTLyePrimOran.TextMode = TextBoxMode.Number
            e.Row.Cells(10).Controls.Add(txtSatiscidanTLyePrimOran)

            txtYukTakipPrimOran.ID = "txtYukTakipPrimOran"
            txtYukTakipPrimOran.Width = 45
            txtYukTakipPrimOran.Font.Size = "10"
            txtYukTakipPrimOran.CssClass = "auto-style3"
            txtYukTakipPrimOran.TextMode = TextBoxMode.Number
            e.Row.Cells(11).Controls.Add(txtYukTakipPrimOran)

            txtBeklenenKur.ID = "txtBeklenenKur"
            txtBeklenenKur.Width = 45
            txtBeklenenKur.Font.Size = "10"
            txtBeklenenKur.CssClass = "auto-style3"
            txtBeklenenKur.TextMode = TextBoxMode.Number
            e.Row.Cells(12).Controls.Add(txtBeklenenKur)

            txtGercekKur.ID = "txtGercekKur"
            txtGercekKur.Width = 45
            txtGercekKur.Font.Size = "10"
            txtGercekKur.CssClass = "auto-style3"
            txtGercekKur.TextMode = TextBoxMode.Number
            e.Row.Cells(13).Controls.Add(txtGercekKur)

            txtPrimVergiKesinti.ID = "txtPrimVergiKesinti"
            txtPrimVergiKesinti.Width = 45
            txtPrimVergiKesinti.Font.Size = "10"
            txtPrimVergiKesinti.CssClass = "auto-style3"
            txtPrimVergiKesinti.TextMode = TextBoxMode.Number
            e.Row.Cells(14).Controls.Add(txtPrimVergiKesinti)

    End Select
End Sub

   Protected Sub MaliyetGrid_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles MaliyetGrid.RowDataBound
    Try
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim txtExpectedCost As New TextBox()
            txtExpectedCost.ID = "txtExpectedCost"
            txtExpectedCost.Width = 50
            txtExpectedCost.Font.Size = "8"
            txtExpectedCost.TextMode = TextBoxMode.Number
            txtExpectedCost.CssClass = "auto-style3"
            Select Case TreeView1.SelectedValue
                Case "P1"

                    If kopyaParam = True Then
                        txtYear.Text = primYil.SelectedValue
                    Else
                        txtYear.Text = TryCast(e.Row.DataItem, DataRowView).Row("paramyear").ToString()
                    End If
                    txtYear.Enabled = False

                    If kopyaParam = True Then
                        txtMonth.Text = primAy.SelectedValue
                    Else
                        txtMonth.Text = TryCast(e.Row.DataItem, DataRowView).Row("parammonth").ToString()
                    End If
                    txtMonth.Enabled = False
                    txtKidemOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("kidemoran").ToString()
                    txtMaasOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("maasoran").ToString()
                    txtNicelikOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("nicelikoran").ToString()
                    txtSatisPrimOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("satisadagitilacakoran").ToString()
                    txtDestekPrimOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("destegedagitilacakoran").ToString()
                    txtVergiOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("ayrilacakvergi").ToString()
                    txtTeamLiderPrimOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("takimlideriprimoran").ToString()
                    txtSatisciPrimOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("satisciprimoran").ToString()
                    txtSatiscidanTLyePrimOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("satistantakimliderineprimoran").ToString()
                    txtYukTakipPrimOran.Text = TryCast(e.Row.DataItem, DataRowView).Row("yuktakipprimoran").ToString()
                    If kopyaParam = True Then
                        txtBeklenenKur.Text = ""
                    Else
                        txtBeklenenKur.Text = TryCast(e.Row.DataItem, DataRowView).Row("beklenenkur").ToString()
                    End If
                    If kopyaParam = True Then
                        txtGercekKur.Text = ""
                    Else
                        txtGercekKur.Text = TryCast(e.Row.DataItem, DataRowView).Row("gerceklesenkur").ToString()
                    End If
                    txtPrimVergiKesinti.Text = TryCast(e.Row.DataItem, DataRowView).Row("primdenvergioran").ToString()


                    If txtKidemOran.Text <> "" Then
                        CopyPrevious.Visible = False
                        SaveButton.Visible = True
                    Else
                        CopyPrevious.Visible = True

                        SaveButton.Visible = False
                    End If
                    kopyaParam = False

                Case "P2", "P3"
                    txtExpectedCost.Text = "" 'TryCast(e.Row.DataItem, DataRowView).Row("GVMATRAH").ToString()
                    e.Row.Cells(9).Controls.Add(txtExpectedCost)
                Case "P4", "P5"
                    txtExpectedCost.Text = "" 'TryCast(e.Row.DataItem, DataRowView).Row("GVMATRAH").ToString()
                    e.Row.Cells(3).Controls.Add(txtExpectedCost)
            End Select

        End If
    Catch ex As Exception
        Response.Write("<script>alert('" & Err.Description & "')</script>")
    End Try

End Sub

 Protected Sub SaveButton_Click(sender As Object, e As EventArgs) Handles SaveButton.Click
    Dim txtPrimVergiKesintiValue As String
    txtPrimVergiKesintiValue = CType(Me.MaliyetGrid.FindControl("MaliyetGrid_txtPrimVergiKesinti_0"), TextBox).Text
    Response.Write("<script>alert('" & txtPrimVergiKesinti.Text & "')</script>")
End Sub
Dim txtYear作为新文本框()
Dim txtMonth作为新文本框()
Dim txtKidemOran作为新文本框()
将TXTMASORAN设置为新文本框()
将txtNicelikOran变暗为新文本框()
将txtSatisPrimOran设置为新文本框()
Dim txtDestekPrimOran作为新文本框()
Dim txtVergiOran作为新文本框()
Dim txtTeamLiderPrimOran作为新文本框()
Dim txtSatisciPrimOran作为新文本框()
Dim TXTSaticDantlyeprimoran作为新文本框()
Dim TXTUKTAKIPPRIMORAN作为新文本框()
Dim txtbeklenekur作为新文本框()
将txtGercekKur变暗为新文本框()
Dim txtPrimVergiKesinti作为新文本框()
受保护的子MaliyetGrid_RowCreated(发件人作为对象,e作为GridViewRowEventArgs)处理MaliyetGrid.RowCreated
选择Case e.Row.RowType
案例DataControlRowType.DataRow
txtYear.ID=“txtYear”
txtYear.Width=45
txtYear.Font.Size=“10”
txtwear.CssClass=“自动样式3”
txtYear.TextMode=TextBoxMode.Number
e、 行。单元格(0)。控件。添加(txtYear)
txtmount.ID=“txtmount”
txt月宽=45
txtmount.Font.Size=“10”
txtmount.CssClass=“自动样式3”
txtmount.TextMode=TextBoxMode.Number
e、 行。单元格(1)。控件。添加(txtMonth)
txtKidemOran.ID=“txtKidemOran”
txtKidemOran.Width=45
txtKidemOran.Font.Size=“10”
txtKidemOran.CssClass=“自动样式3”
txtKidemOran.TextMode=TextBoxMode.Number
e、 行。单元格(2)。控件。添加(txtKidemOran)
txtmasoran.ID=“txtmasoran”
txtmasoran.宽度=45
txtmasoran.Font.Size=“10”
txtmasoran.CssClass=“自动样式3”
txtmasoran.TextMode=TextBoxMode.Number
e、 行。单元格(3)。控件。添加(TXTMASORAN)
txtNicelikOran.ID=“txtNicelikOran”
txtNicelikOran.Width=45
txtNicelikOran.Font.Size=“10”
txtNicelikOran.CssClass=“自动样式3”
txtNicelikOran.TextMode=TextBoxMode.Number
e、 行。单元格(4)。控件。添加(txtNicelikOran)
txtSatisPrimOran.ID=“txtSatisPrimOran”
txtstisprimoran.Width=45
txtstisprimoran.Font.Size=“10”
txtSatisPrimOran.CssClass=“自动样式3”
txtSatisPrimOran.TextMode=TextBoxMode.Number
e、 行。单元格(5)。控件。添加(txtstisprimoran)
txtDestekPrimOran.ID=“txtDestekPrimOran”
txtDestekPrimOran.Width=45
txtDestekPrimOran.Font.Size=“10”
txtDestekPrimOran.CssClass=“自动样式3”
txtDestekPrimOran.TextMode=TextBoxMode.Number
e、 行。单元格(6)。控件。添加(txtDestekPrimOran)
txtVergiOran.ID=“txtVergiOran”
txtVergiOran.Width=45
txtVergiOran.Font.Size=“10”
txtVergiOran.CssClass=“自动样式3”
txtVergiOran.TextMode=TextBoxMode.Number
e、 行。单元格(7)。控件。添加(txtVergiOran)
txtTeamLiderPrimOran.ID=“txtTeamLiderPrimOran”
txtTeamLiderPrimOran.Width=45
txtTeamLiderPrimOran.Font.Size=“10”
txtTeamLiderPrimOran.CssClass=“自动样式3”
txtTeamLiderPrimOran.TextMode=TextBoxMode.Number
e、 行。单元格(8)。控件。添加(txtTeamLiderPrimOran)
txtSatisciPrimOran.ID=“txtSatisciPrimOran”
txtSatisciPrimOran.Width=45
txtSatisciPrimOran.Font.Size=“10”
txtSatisciPrimOran.CssClass=“自动样式3”
txtSatisciPrimOran.TextMode=TextBoxMode.Number
e、 行。单元格(9)。控件。添加(txtSatisciPrimOran)
txtSatiscidanTLyePrimOran.ID=“txtSatiscidanTLyePrimOran”
txtsatiscidtyeprimoran.Width=45
txtSatiscidanTLyePrimOran.Font.Size=“10”
txtsatiscidtyeprimoran.CssClass=“auto-style3”
txtsaticsidtyeprimoran.TextMode=TextBoxMode.Number
e、 行。单元格(10)。控件。添加(txtSatiscidanTLyePrimOran)
txtukuktakipprimoran.ID=“txtukuktakipprimoran”
txtYukTakipPrimOran.宽度=45
txtukuktakipprimoran.Font.Size=“10”
txtukuktakipprimoran.CssClass=“自动样式3”
txtYukTakipPrimOran.TextMode=TextBoxMode.Number
e、 行。单元格(11)。控件。添加(TXTUKTAKIPPRIMORAN)
txtBeklenenKur.ID=“txtBeklenenKur”
TXTBEKLENKUR.宽度=45
txtBeklenenKur.Font.Size=“10”
txtBeklenenKur.CssClass=“自动样式3”
txtbeklenekur.TextMode=TextBoxMode.Number
e、 行。单元格(12)。控件。添加(TXTBEKLENKUR)
txtGercekKur.ID=“txtGercekKur”
txtGercekKur.宽度=45
txtGercekKur.Font.Size=“10”
txtGercekKur.CssClass=“自动样式3”
txtGercekKur.TextMode=TextBoxMode.Number
e、 行。单元格(13)。控件。添加(txtGercekKur)
txtPrimVergiKesinti.ID=“txtPrimVergiKesinti”
txtPrimVergiKesinti.宽度=45
txtPrimVergiKesinti.Font.Size=“10”
txtPrimVergiKesinti.CssClass=“自动样式3”
txtPrimVergiKesinti.TextMode=TextBoxMode.Number
e、 行。单元格(14)。控件。添加(txtPrimVergiKesinti)
结束选择
Protected Sub MaliyetGrid_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles MaliyetGrid.RowCreated
    Select Case e.Row.RowType
        Case DataControlRowType.DataRow
            Dim txtPrimVergiKesinti As New TextBox()
            txtPrimVergiKesinti.ID = "txtPrimVergiKesinti"
            txtPrimVergiKesinti.Width = 45
            txtPrimVergiKesinti.Font.Size = New FontUnit(10)
            txtPrimVergiKesinti.CssClass = "auto-style3"
            txtPrimVergiKesinti.TextMode = TextBoxMode.Number
            e.Row.Cells(14).Controls.Add(txtPrimVergiKesinti)
    End Select
End Sub
Protected Sub MaliyetGrid_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles MaliyetGrid.RowDataBound
    Select Case e.Row.RowType
        Case DataControlRowType.DataRow
            Dim txtPrimVergiKesinti = DirectCast(e.Row.FindControl("txtPrimVergiKesinti"), TextBox)
            Dim row As DataRow = DirectCast(e.Row.DataItem, DataRowView).Row
            txtPrimVergiKesinti.Text = row.Field(Of String)("primdenvergioran")
    End Select
End Sub
Protected Sub SaveButton_Click(sender As Object, e As EventArgs) Handles btn.Click
    For Each row As GridViewRow In Me.MaliyetGrid.Rows
        Dim txtPrimVergiKesinti = DirectCast(row.FindControl("txtPrimVergiKesinti"), TextBox)
        Dim txtPrimVergiKesintiValue As String = txtPrimVergiKesinti.Text
        ' ....
    Next
End Sub