将 gridview 行数据添加到文本框和标签中

Posted

技术标签:

【中文标题】将 gridview 行数据添加到文本框和标签中【英文标题】:Adding gridview line data into textboxes and labels 【发布时间】:2014-04-10 14:06:18 【问题描述】:

我正在尝试将 gridview 详细信息放入文本框中,以便更好地查看和编辑。 我列出了以下代码来创建网格视图:

'Finds all cases that are not closed
    Protected Sub listAllCases()
        sqlCommand = New SqlClient.SqlCommand("SELECT TC.caseId,TS.subName,TSU.userName,TC.caseType,TC.caseRegBy,TC.caseTopic,TC.caseDesc,TC.caseSolu,TC.caseDtCreated, TC.caseStatus FROM TBL_CASE TC INNER JOIN TBL_SUBSIDIARY_USER TSU ON TC.caseUser = TSU.userID INNER JOIN TBL_SUBSIDIARY TS on TSU.usersubId = TS.subId WHERE TC.caseStatus = 0 order by caseId")
        sqlCommand.Connection = sqlConnection
        sqlConnection.Open()
        'sqlCommand.Parameters.AddWithValue("@subID", Me.caseSub.SelectedItem.Value)

        Dim dr As SqlClient.SqlDataReader
        dr = sqlCommand.ExecuteReader
        If dr.HasRows Then
            allCases.DataSource = dr
            allCases.DataBind()
        Else
            allCases.DataSource = Nothing
            allCases.DataBind()
        End If
        dr.Close()
        sqlConnection.Close()
    End Sub

然后我在 gridview 上使用 a 函数 onselectindexchanged 并写下:

Protected Sub OnSelectedIndexChanged(sender As Object, e As EventArgs)
        Dim row As GridViewRow = allCases.SelectedRow
        txtcase.Text = row.Cells(1).Text()
        txtsub.Text = row.Cells(2).Text
        txtuser.Text = row.Cells(3).Text
        oDato.Text = row.Cells(9).Text
        lDato.Text = "Saken er ikke lukket!"
        txttype.Text = row.Cells(4).Text.ToString
        txtregBy.Text = row.Cells(5).Text.ToString
        txttopic.Text = row.Cells(6).Text
        txtDesc.Text = row.Cells(7).Text
        txtSolu.Text = row.Cells(8).Text
        lblinfo.Text = row.Cells(6).Text
    End Sub

我只让它显示单元格 1 到 9。意味着单元格 4 到 8 未列出或为空白,即使我知道它应该包含数据。

非常感谢任何提示或线索!

【问题讨论】:

【参考方案1】:

像这样?

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As 
TextBox1.text = DataGridView1.Rows(e.Index).Cells(0).value.toString
TextBox2.text = DataGridView1.Rows(e.Index).Cells(1).value.toString
TextBox3.text = DataGridView1.Rows(e.Index).Cells(2).value.toString
TextBox4.text = DataGridView1.Rows(e.Index).Cells(3).value.toString
TextBox5.text = DataGridView1.Rows(e.Index).Cells(4).value.toString
TextBox6.text = DataGridView1.Rows(e.Index).Cells(5).value.toString
TextBox7.text = DataGridView1.Rows(e.Index).Cells(6).value.toString
TextBox8.text = DataGridView1.Rows(e.Index).Cells(7).value.toString
TextBox9.text = DataGridView1.Rows(e.Index).Cells(8).value.toString
TextBox10.text = DataGridView1.Rows(e.Index).Cells(9).value.toString
End Sub

这将通过单击记录显示该行中的所有信息...

【讨论】:

(ByVal sender As System.Object, ByVal e As..... 你能完成吗?我已经尝试过:Private Sub allCases_CellContentClick(ByVal sender As System.Object, e As DataGridViewCellEventArgs ) 处理 allCases.CellContentClick 但在处理部分失败。此外,e.index 部分不是 System.Windows.Form.DatagridvireCelleventargs 的成员。当我尝试找到它时,.Value 也不在建议框中。跨度> 【参考方案2】:

e As System.Windows.Forms.DataGridViewCellEventArgs) 处理 DataGridView1.CellContentClick

对不起……

通过单击数据,(e.Index) 将找到 DataGridView.Rows(),然后单元格。(n) 等...将获取您的数据

【讨论】:

在“Handles gridview1.CellContentClick”上,它只是告诉我“找不到事件'CellContentClick'。”我已更新 gridview1 以更正 gridview ID。 e.index 也告诉我 index 不是 System.Windows.Forms.DataGridViewCellEventArgs 的成员。【参考方案3】:

好的。我猜对了,终于。我用来让它工作的代码如下:

Protected Sub allCases_OnSelectedIndexChanged(sender As Object, e As EventArgs)
        Dim row As GridViewRow = allCases.SelectedRow
        txtcase.Text = row.Cells(1).Text()
        txtsub.Text = row.Cells(2).Text.ToString
        txtuser.Text = row.Cells(3).Text
        oDato.Text = row.Cells(9).Text
        txtDesc.Text = TryCast(row.FindControl("lblcaseDesc"), Label).Text
        txtSolu.Text = TryCast(row.FindControl("lblcaseSolu"), Label).Text
end sub

这意味着我需要以不同的方式获取绑定字段和模板字段。 总之谢谢你的回复。

【讨论】:

以上是关于将 gridview 行数据添加到文本框和标签中的主要内容,如果未能解决你的问题,请参考以下文章

使用jQuery在多个gridview行中将值从一个文本框复制到另一个文本框

使用asp.net中的文本框进行Gridview过滤

ASP.net GridView 的小问题

如何使用展开和折叠数据行的选项将页脚模板添加到 gridview?C#/ASP.NET

要gridview 支持html文本应该怎么做?

在gridview中插入多行