首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除行/删除行

删除行/删除行
EN

Stack Overflow用户
提问于 2017-12-14 10:35:00
回答 2查看 452关注 0票数 0

我想在gridview中删除我的行,但是当我尝试许多代码时,错误是相同的。

当我试着这个

代码语言:javascript
复制
Using sqlCon As New SqlConnection(PyrDLL.Koneksi.ConnectionString)
        Using cmd As New SqlCommand()
            cmd.CommandText = "xyz"
            cmd.Connection = sqlCon
            sqlCon.Open()
            Dim da As New SqlDataAdapter(cmd)
            Dim dt As New DataTable()
            da.Fill(dt)
            Gridview1.DataSource = dt
            Gridview1.DataBind()
            sqlCon.Close()
            If Gridview1.Rows.Count = 0 Then
                Dim dtempty As DataTable = Nothing
                dtempty = (DirectCast(Gridview1.DataSource, DataTable)).Clone()
                dtempty.Rows.Add(dtempty.NewRow())
                Gridview1.DataSource = dtempty
                Gridview1.DataBind()
                Gridview1.Rows(0).Visible = False
                'Gridview1.Rows(0).Controls.Clear()
            Else
                For i As Integer = 0 To dt.Rows.Count - 1
                    dt.Rows(i)("rupiah") = PyrDLL.Decrypt(dt.Rows(i)("rupiah"))
                    dt.Rows(i)("rupiah") = Decimal.Parse(dt.Rows(i)("rupiah")).ToString()
                    'i = i + 1
                Next
                Gridview1.DataBind()
                For i As Integer = Gridview1.Rows.Count - 1 To 1 Step -1
                    Dim row As GridViewRow = Gridview1.Rows(i)
                    Dim prevrow As GridViewRow = Gridview1.Rows(i - 1)
                    If (TryCast(Gridview1.Rows(i).Cells(1).FindControl("lblketerangan"), Label).Text.ToString() = TryCast(Gridview1.Rows(i - 1).Cells(1).FindControl("lblketerangan"), Label).Text.ToString()) And (TryCast(Gridview1.Rows(i).Cells(0).FindControl("lblcomp"), Label).Text.ToString() = TryCast(Gridview1.Rows(i - 1).Cells(0).FindControl("lblcomp"), Label).Text.ToString()) Then
                        Dim total As Integer = Convert.ToDecimal(TryCast(Gridview1.Rows(i - 1).Cells(2).FindControl("lblrupiah"), Label).Text)
                        Dim total2 As Integer = Convert.ToDecimal(TryCast(Gridview1.Rows(i).Cells(2).FindControl("lblrupiah"), Label).Text)
                        Dim total3 As Decimal
                        total3 = total + total2
                        DirectCast(Gridview1.Rows(i - 1).Cells(2).FindControl("lblrupiah"), Label).Text = Decimal.Parse(total3).ToString()
                        row.Visible = False
                        'Gridview1.Rows.Remove(Gridview1.Rows(i)) <--- if i comment here its run without problem
                    End If
                Next
            End If
        End Using
    End Using

误差

“'System.Web.UI.WebControls.GridViewRowCollection'删除”不是‘System.Web.UI.WebControls.GridViewRowCollection’的成员

你能帮帮我吗?

现在,我在对行进行求和后隐藏行,但我希望在与行之和之后自动删除/删除行,而不仅仅是隐藏行。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-12-14 12:55:47

我不知道当没有行时,网格视图将是空的。

相反,您应该执行以下操作:

代码语言:javascript
复制
'Call GetData() every time you want to bind data to the gridview
Private Function GetData()

    Gridview1.DataSource = Nothing
    Gridview1.DataBind()

    Dim strQuery = "SELECT..."
    Dim dt As New DataTable()

    Using sqlCon As New SqlConnection(PyrDLL.Koneksi.ConnectionString)
        Using cmd As New SqlCommand(strQuery, sqlCon)
        'Add cmd parameters as required to prevent SqlInjection
        sqlCon.Open()

            Using ada As New SqlDataAdapter(cmd)
                ada.Fill(dt)
                Gridview1.DataSource = dt
                Gridview1.DataBind()
            End Using

        End Using
    End Using
End Function

在处理网格视图中的数据时,可以使用RowDataBound,然后可以调用一个单独的函数来处理在满足条件以删除行的逻辑之后删除行的操作。

代码语言:javascript
复制
Protected Sub Gridview1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles Gridview1.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        'Handle databound logic
    End If
End Sub

每次需要将数据重新绑定到网格视图时,您都应该能够根据您的需要进行调整,只需调用GetData()。

票数 0
EN

Stack Overflow用户

发布于 2017-12-18 01:09:59

我解决了我的问题,我不能从数据网格视图中删除行,但是我从数据表中删除数据,并在此之后绑定它,谢谢大家。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47811246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档