将列表框选择绑定到数据网格

将列表框选择绑定到数据网格

本文介绍了将列表框选择绑定到数据网格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 嗨伙计们; 我有一个列表框,使用过滤后的数据视图填充数据(只需要一列的名称),然后允许用户选择一个条目从列表中,单击相应的按钮,然后使用 按钮单击事件,打开另一个表单并使用参数填充表单(用于填充列表框的参数)。结果集将是基于相同参数返回的任何/所有列。 我为多个按钮分别单击事件,这些按钮都执行相同的基本操作,但每个按钮返回的数据来自单独的表格。这非常有效,但是...... 我试图将单独的单击事件合并为一个,并使用用例选择来确定单击了哪个按钮,并返回相应的结果。 发生的问题是在转换为通用单击事件后,结果仅返回数据集中的第一行,而不管列表框选择如何。 我要包含一个代码片段,希望有人能够为我抓住这个问题! 私人 Sub AllFindButtons( ByVal 发件人 as system。 object ByVal 电子作为 System.e.System.EventArgs)把手 btnSuppliersFind.click,btnCustomersfind.click '将发件人转换为按钮类型。 Dim btn为Button = CType(发件人,按钮) Dim btnName as String = btn.Name 将文本字符串作为字符串= string.empty 将表格作为System.Data.DataTable = Nothing '哪个文本框和数据表F ILTER使用选择案例btnName    案 "btnSuppliersFind"       文本= txtSuppliersName.Text       表= NorthwindDataSet.Suppliers    病例 "btnCustomersFind"        TXT = txtCustomerName .Text        table = NorthwindDataSet.Customers End Select Dim filteredview as Data.DataView = New Data.DataView(table ) '此行过滤器一般化      filteredView.RowFilter ="CompanyName Like'%"+ text +"%'"       Dim rowsFound As Int32 = filteredView.Count      选择Case rowsFound         案例0  '没有找到记录            MessageBox.Show(_             "没有符合条件的记录发现",_    &NBSP ;        "没有找到记录",_             MessageBoxButtons。 OK,_             MessageBoxIcon.Exclamation)      &NBSP ; 案例1             '您显示的形式取决于按钮名称           选择案例btnName               案例"btnSuppliersFind"                  frmSuppliers.CompanyNameParameter = _                      filteredView.Item(0)("CompanyName")                  frmSuppliers.Show()              案 "btnCustomersFind"                   frmCustomerDetails.CompanyNameParameter = _                      filteredView.Item(0)("CompanyName")                  frmCustomerDetails.Show()           结束选择         Case Else             dlgPickMatchingCompany.FilteredView = filteredView            昏暗的结果As DialogResult             result = dlgPickMatchingCompany.ShowDialog()           如果result = DialogResult.OK然后               Dim rowView As Data.DataRowView                rowView = dlgPickMatchingCompany.lbMatching.SelectedItem               暗淡的companyName作为字符串= rowView.Row.Item( "公司名称")                "您显示的表单取决于按钮名称              选择案例btnName                  案例"btnSuppliersFind"                     frmSuppliers.CompanyNameParameter = _                     &NBSP ;   filteredView.Item(0)( "公司名称")                 &NBSP ;   frmSuppliers.Show()                 案 "btnCustomersFind"                      frmCustomerDetails.CompanyNameParameter = _                     &NBSP ;   filteredView.Item(0)( "公司名称")                 &NBSP ;   frmCustomerDetails.Show()              结束选择           结束如果     结束选择  结束子   解决方案 Oi Gente, Eu Tenho UMA Caixa de Listagem,Opaco E preenchido com Dados usandoUMAexibiçãodeDados filtrada(assim Quero o nomo 德UMA Coluna)中,e entao permitir Opaco OS USUARIOS selecionem UMA ENTRADA哒利斯塔,集团洛斯哼波涛corrosponding,E COMö集团德波涛事件摘要,阿布拉OUTROFormulárioËpreencheöFormulário山岛哼声Parâmetro(MESMO USADOparágrafopreencher一个Caixa de Lista)。 的的的 0 CONJUNTO德Resultados赛瑞亚QUALQUÉR/托达como的Colunas retornadas COM基德nenhumParâmetroMESMO 。 的的的 Tenho camarilha洛斯EVENTOS甲Separados VARIOSparágrafosBOTOES,Opaco托多斯desempenham嗯MESMAAçãoBásica,com a ressalva de OpacoCADABotãoRetornaDados de Tabelas separadas。 de Isso Funciona Muito Bem,mas ... eu tentei combinar OS eventos de camarilha Separados los hum assim,e USAR Caso selecione Para determinarqualiBotãoFOIclicado,e retornar OS RESULTADOS apropriados。 的的的 OpacoöProblema ocorreË者UMA转换器类parágrafo哼声坂东日事件摘要Genéricos,OsResultadosSóretornara Primeira Linha do Conjunto de Dados,independentemente deumaSeleçãodaCaixa de Lista。 的的的我在这incluíndo哼声Trecho德CódigoCOM一个埃斯佩兰萨德Opaco alguem颇得丝氨酸Capaz德Pegar ESSE Problema par mim! btnCustomersfind.click 'remetente elenc o Como o TipodeBotão。 Dim btnComoBotão= CType(remetente,Button) Dim btnName Como String = btn.Name 'determinar OS campos de Texto para USAR。 Dim Texto corda Como = vazio Sistema Como mesa Dim。 dados。 DataTable = Nothing 'Qual Caixa de texto e Filtro de Tabela de DadosdoParáUSAR。 选择案例btnName     Caso" btnSuppliersFind"        text = txtSuppliersName.Text        table = NorthwindDataSet.Suppliers     Caso" btnCustomersFind"        txt = txtCustomerName.Text        table = NorthwindDataSet.Customers 结束选择 Dim filteredview Como Data.DataView = Novo Data。 DataView(Tabela) este Filtro de Linha generalizada       filteredView.RowFilter =" CompanyName Like'%" + Texto +"%'" $       Dim rowsFound Como Int32 = filteredView.Count      选择Case rowsFound          Caso 0'Nenhum Registro ENCONTRADO             MessageBox.Show(_            " Nenhum Registro Correspondentes FORAM Encontrados",_   ;          " Nenhum Registro ENCONTRADO" ;, _          ;    MessageBoxButtons.OK,_             MessageBoxIcon.Exclamation)      &NBS磷;   Caso 1             ",QueformamVocê。 mostrar Depende fazer nomo fazobotão            选择案例btnName                Caso"btnSuppliersFind"                   frmSuppliers.CompanyNameParameter = _ 的                   &NBSP ; filteredView.Item(0)(" CompanyName")                    frmSuppliers.Show()                Caso"btnCustomersFind"                   frmCustomerDetails.CompanyNameParameter = _ 的                   &NBSP ; filteredView.Item(0)(" CompanyName")                    frmCustomerDetails。 show()            结束选择          Case Else             dlgPickMatchingCompany.FilteredView = filteredView            昏暗的结果As DialogResult             Resultado = dlgPickMatchingCompany.ShowDialog()             Seo Resultado para DialogResult.OK entao                Dim rowView Como Data.DataRowView                rowView = dlgPickMatchingCompany.lbMatching.SelectedItem                Dim companyName As String = rowView。 Row.Item(" CompanyName")                 "QueformaVocê。 mostrar Depende fazer nomo fazobotão               选择案例btnName                   Caso"btnSuppliersFind"                      frmSuppliers.CompanyNameParameter = _ 的                   &NBSP ;    filteredView.Item(0)(" CompanyName")                       frmSuppliers.Show)(                   Caso" btnCustomersFind"                      frmCustomerDetails.CompanyNameParameter = _ 的                     &NBSP ;  filteredView.Item(0)(" CompanyName")             &n BSP;        frmCustomerDetails.Show()               结束选择            结束如果      结束选择   结束子   'p>的的铕montei一个primeira AULA做这份绿皮书,我在这山岛的Visual Studio 2013,E无COMANDO查找,NAO ESTA achando nenhum registro filtrado,JA revisei一个leitura ,énãestouconseguindo observar onde estou errando。         Dim rowsFound Como Int32 = filteredView.Count      选择案例行创建           Caso 0'Nenhum Registro ENCONTRADO              MessageBox.Show(_  的           " Nenhum Registro Correspondentes有孔虫Encontrados" ;, _  的           " ; Nenhum Registro ENCONTRADO" ;, _  的            MessageBoxButtons .OK,_              MessageBoxIcon.Exclamation)   Hi Folks;I have a list box which is populated with data using a filtered data view (just want the name of one column), and then allow users to select an entry from the list, click a corrosponding button, and with the button click event, opens another form and populates the form using a parameter (same one used to populate list box). The result set would be any/all columns returned based on the same parameter.I have seperate click events for multiple buttons, which all perform the same basic action, with the exception that each button returns data from seperate tables. This works quite well, but...I attempted to combine the seperate click events into one, and use case select to determine which button was clicked, and return the appropriate results.The problem that occurs is after converting to a generic click event, the results only return the first row in the dataset, regardless of the list box selection. I'm including a code snippet with the hopes that someone may be able to catch this issue for me!Private Sub AllFindButtons(ByVal sender as system.object ByVal e as System.e.System.EventArgs)Handles btnSuppliersFind.click, btnCustomersfind.click'cast sender as button type.Dim btn as Button = CType(sender, Button)Dim btnName as String = btn.Name'determine text fields to use.Dim text as string = string.emptyDim table as System.Data.DataTable = Nothing'Which text box and data table filter to use.Select Case btnName   Case "btnSuppliersFind"      text = txtSuppliersName.Text      table =NorthwindDataSet.Suppliers   Case "btnCustomersFind"      txt = txtCustomerName.Text      table = NorthwindDataSet.CustomersEnd SelectDim filteredview as Data.DataView = New Data.DataView(table)' this row filter generalized      filteredView.RowFilter = "CompanyName Like '%" + text + "%'"       Dim rowsFound As Int32 = filteredView.Count       Select Case rowsFound         Case 0  ' no records found            MessageBox.Show( _            "No matching records found", _            "No records found", _            MessageBoxButtons.OK, _            MessageBoxIcon.Exclamation)         Case 1            'which form you show depends on the button name            Select Case btnName               Case "btnSuppliersFind"                  frmSuppliers.CompanyNameParameter = _                     filteredView.Item(0)("CompanyName")                  frmSuppliers.Show()               Case "btnCustomersFind"                  frmCustomerDetails.CompanyNameParameter = _                     filteredView.Item(0)("CompanyName")                  frmCustomerDetails.Show()            End Select         Case Else            dlgPickMatchingCompany.FilteredView = filteredView            Dim result As DialogResult            result = dlgPickMatchingCompany.ShowDialog()            If result = DialogResult.OK Then               Dim rowView As Data.DataRowView               rowView = dlgPickMatchingCompany.lbMatching.SelectedItem               Dim companyName As String = rowView.Row.Item("CompanyName")                ' which form you show depends on the button name               Select Case btnName                  Case "btnSuppliersFind"                     frmSuppliers.CompanyNameParameter = _                        filteredView.Item(0)("CompanyName")                     frmSuppliers.Show()                  Case "btnCustomersFind"                     frmCustomerDetails.CompanyNameParameter = _                        filteredView.Item(0)("CompanyName")                     frmCustomerDetails.Show()               End Select            End If      End Select   End Sub  解决方案Oi Gente, Eu Tenho UMA Caixa de Listagem, Opaco E preenchido com Dados usando UMA exibição de Dados filtrada (assim Quero o nomo de UMA Coluna), e entao permitir Opaco OS USUÁRIOS selecionem UMA Entrada da Lista, clique los hum Botão corrosponding, e com o clique de Botão Evento, abra Outro Formulário e preenche o Formulário usando hum Parâmetro (MESMO USADO parágrafo preencher a Caixa de Lista). O Conjunto de Resultados Seria QUALQUÉR / Todas como Colunas retornadas com base de nenhum Parâmetro MESMO.Tenho camarilha los eventos A Separados VÁRIOS parágrafos BOTOES, Opaco Todos desempenham um MESMA Ação Básica, com a ressalva de Opaco CADA Botão Retorna Dados de Tabelas separadas.de Isso Funciona Muito Bem, mas ...eu tentei combinar OS eventos de camarilha Separados los hum assim, e USAR Caso selecione Para determinar quali Botão FOI clicado, e retornar OS RESULTADOS apropriados.Opaco O Problema ocorre E apos uma Conversão parágrafo hum bando de Evento Genéricos, Os Resultados Só retornar a Primeira Linha do Conjunto de Dados, independentemente de uma Seleção da Caixa de Lista. ESTOU incluíndo hum Trecho de Código com a Esperança de Opaco alguem PODE Ser Capaz de Pegar ESSE Problema par mim!btnCustomersfind.click'remetente elenco Como o Tipo de Botão.Dim btn Como Botão = CType (remetente, Button)Dim btnName Como String = btn.Name'determinar OS campos de Texto para USAR.Dim Texto corda Como = vazioSistema Como mesa Dim . dados.DataTable = Nothing 'Qual Caixa de texto e Filtro de Tabela de Dados do Pará USAR.Select Case btnName   Caso "btnSuppliersFind"      text = txtSuppliersName.Text      table = NorthwindDataSet.Suppliers   Caso "btnCustomersFind"      txt = txtCustomerName.Text      table = NorthwindDataSet.CustomersEnd SelectDim filteredview Como Data.DataView = Novo Data.DataView (Tabela)"este Filtro de Linha generalizada      filteredView.RowFilter = "CompanyName Like '%" + Texto + "%'"      Dim rowsFound Como Int32 = filteredView.Count      Select Case rowsFound         Caso 0 'Nenhum Registro ENCONTRADO            MessageBox.Show (_            "Nenhum Registro Correspondentes FORAM Encontrados", _            "Nenhum Registro ENCONTRADO", _            MessageBoxButtons.OK, _            MessageBoxIcon.Exclamation)         Caso 1            ", Que formam Você. mostrar Depende fazer nomo faz o botão            Select Case btnName               Caso "btnSuppliersFind"                  frmSuppliers.CompanyNameParameter = _                     filteredView.Item (0) ("CompanyName")                  frmSuppliers.Show ()               Caso "btnCustomersFind"                  frmCustomerDetails.CompanyNameParameter = _                     filteredView.Item (0) ("CompanyName")                  frmCustomerDetails. show ()            End Select         Case Else            dlgPickMatchingCompany.FilteredView = filteredView            Dim result As DialogResult            Resultado = dlgPickMatchingCompany.ShowDialog ()            Se o Resultado para DialogResult.OK entao               Dim rowView Como Data.DataRowView               rowView = dlgPickMatchingCompany.lbMatching.SelectedItem               Dim companyName As String = rowView. Row.Item ("CompanyName")               "Que forma Você. mostrar Depende fazer nomo faz o botão               Select Case btnName                  Caso "btnSuppliersFind"                     frmSuppliers.CompanyNameParameter = _                        filteredView.Item (0) ("CompanyName")                     frmSuppliers.Show) (                  Caso "btnCustomersFind"                     frmCustomerDetails.CompanyNameParameter = _                        filteredView.Item (0) ("CompanyName")                     frmCustomerDetails.Show ()               End Select            End If      End Select   End Sub Eu montei a primeira aula do livro, estou usando Visual Studio 2013, é no comando FIND, não está achando nenhum registro filtrado, já revisei a leitura, é não estou conseguindo observar onde estou errando.        Dim rowsFound Como Int32 = filteredView.Count      Select Case rowsFound          Caso 0 'Nenhum Registro ENCONTRADO             MessageBox.Show (_             "Nenhum Registro Correspondentes FORAM Encontrados", _             "Nenhum Registro ENCONTRADO", _             MessageBoxButtons.OK, _             MessageBoxIcon.Exclamation)  这篇关于将列表框选择绑定到数据网格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-20 21:20