簡體   English   中英

DataGridView ComboBoxCell沒有顯示來自列表vb.net的值

[英]DataGridView ComboBoxCell is not showing values that are not from the list vb.net

大家好,我有一個組合框,它是從綁定源中很好地填充的。 因此,問題在於數據網格的“名稱”列僅顯示來自填充的下拉列表的值。 與下拉列表不同的那些值顯示為空。 有人可以告訴我為什么嗎? 下面是他們的組合框代碼。 我無法打印屏幕,但說明是這樣的。 LIst有3個名稱:John,Jake,Jay,但該列有10個以上的名稱,每個名稱在其各自的單元格中。 加載時出現的問題是未顯示其他名稱。

    Dim c4 As New DataGridViewComboBoxColumn()

    c4.HeaderText = "Name"
    c4.Name = "Name"
    c4.DataPropertyName = "Name"
    c4.DisplayMember = "NamesWithJ"
    c4.ValueMember = "NamesWithJ"
    c4.DisplayStyleForCurrentCellOnly = False
    c4.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
    c4.FlatStyle = FlatStyle.Standard
    c4.SortMode = DataGridViewColumnSortMode.Automatic
    c4.DataSource = AddtBndSrc
    c4.Width = 100
    Me.DataGrid.Columns.Add(c4)

這是我創建綁定源並將其填充值的代碼。 連接完美顯示沒有錯誤。 只是comboboxcolumn在某些行中顯示null

                   Try

       con = New SqlConnection(strConnection)

      cib.Open()

        adoAAda = New SqlDataAdapter(StrAddNameQuery, con)

        adoAddtRs = New DataSet



        adoAAda.Fill(adoAddtRs)

        Dim tableAddt As DataTable = adoAddtRs.Tables(0)

        Dim colum As DataColumn = tableAddt.Columns(0)


        tableAddt.PrimaryKey = New DataColumn() {tableAddt.Columns(0)}

        AddtBndSrc.DataSource = adoAddtRs.Tables(0)


        con.close()

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
    Try
        ' connection procedure
     con = New SqlConnection(strConnection)

       con.Open()

        adoPAda = New SqlDataAdapter(StrProductQuery, con)

        adoProductsRS = New DataSet



        adoPAda.Fill(adoProductsRS)

        Dim tableProduct As DataTable = adoProductsRS.Tables(0)

        Dim colum As DataColumn = tableProduct.Columns(0)


        tableProduct.PrimaryKey = New DataColumn() {tableProduct.Columns(0)}

        productBndSrc.DataSource = adoProductsRS.Tables(0)

        MsgBox(tableProduct.Columns(0).ColumnName.ToString)
       con.close

        datagridview.Datasource = productBndSrc

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

似乎您正在將組合框bindingSource AddtBndSrc分配給DataGridViewComboBoxColumn數據源。 因此,如果為該列分配了某些項目,則它們將被數據源覆蓋。

您要合並組合框的值。 有些被硬編碼為組合,但從數據庫中被拉出。 如果是這樣,則需要在綁定到組合之前將硬編碼的值添加到數據源中。

在以下行之后添加下面給出的代碼。

    adoAAda.Fill(adoAddtRs)
    Dim tableAddt As DataTable = adoAddtRs.Tables(0)

綁定前將您的硬編碼名稱添加到數據源

    Dim tableAddt As DataTable = adoAddtRs.Tables(0)

    Dim dr As DataRow = tableAddt.NewRow
    dr("NamesWithJ") = "My test 1"
    tableAddt.Rows.Add(dr)
    Dim dr1 As DataRow = tableAddt.NewRow
    dr("NamesWithJ") = "My test 2"
    tableAddt.Rows.Add(dr1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM