将列表框选择绑定到数据网格 [英] bind list box selection to a data grid
问题描述
嗨伙计们;
我有一个列表框,使用过滤后的数据视图填充数据(只需要一列的名称),然后允许用户选择一个条目从列表中,单击相应的按钮,然后使用 按钮单击事件,打开另一个表单并使用参数填充表单(用于填充列表框的参数)。结果集将是基于相同参数返回的任何/所有列。
我为多个按钮分别单击事件,这些按钮都执行相同的基本操作,但每个按钮返回的数据来自单独的表格。这非常有效,但是......
我试图将单独的单击事件合并为一个,并使用用例选择来确定单击了哪个按钮,并返回相应的结果。
发生的问题是在转换为通用单击事件后,结果仅返回数据集中的第一行,而不管列表框选择如何。
我要包含一个代码片段,希望有人能够为我抓住这个问题!
私人 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 &NBSP;&NBSP;&NBSP;案 "btnSuppliersFind" &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;文本= txtSuppliersName.Text &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;表= NorthwindDataSet.Suppliers &NBSP;&NBSP;&NBSP;病例 "btnCustomersFind" &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; 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 &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; "您显示的表单取决于按钮名称 |
< blockquote>
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!
< span style =""> btnCustomersfind.click
'remetente elenc o Como o TipodeBotão。
Dim btnComoBotão= CType(remetente,Button)
< span style =""> 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
< span style =""> filteredView.RowFilter =" CompanyName Like'%" + Texto +"%'"
$
< span style ="">
Dim rowsFound Como Int32 = filteredView.Count
< span style =""> 选择Case rowsFound
Caso 0'Nenhum Registro ENCONTRADO
MessageBox.Show(_
" Nenhum Registro Correspondentes FORAM Encontrados",_
  ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;" Nenhum Registro ENCONTRADO" ;, _
跨度> 跨度> 跨度> 跨度>
; MessageBoxButtons.OK,_
MessageBoxIcon.Exclamation)
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBS磷;&NBSP;&NBSP; Caso 1
",QueformamVocê。 mostrar Depende fazer nomo fazobotão
< span style =""> 选择案例btnName
Caso"btnSuppliersFind"
< span style =""> frmSuppliers.CompanyNameParameter = _
的&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ; filteredView.Item(0)(" CompanyName")
&NBSP; frmSuppliers.Show()
Caso"btnCustomersFind"
< span style =""> frmCustomerDetails.CompanyNameParameter = _
的&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ; filteredView.Item(0)(" CompanyName")
&NBSP; frmCustomerDetails。 show()
结束选择
Case Else
dlgPickMatchingCompany.FilteredView = filteredView
昏暗的结果As DialogResult
Resultado = dlgPickMatchingCompany.ShowDialog()
< span style =""> Seo Resultado para DialogResult.OK entao
Dim rowView Como Data.DataRowView
rowView = dlgPickMatchingCompany.lbMatching.SelectedItem
< span style =""> Dim companyName As String = rowView。 Row.Item(" CompanyName")
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; "QueformaVocê。 mostrar Depende fazer nomo fazobotão
< span style =""> 选择案例btnName
Caso"btnSuppliersFind"
< span style =""> frmSuppliers.CompanyNameParameter = _
的&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP; filteredView.Item(0)(" CompanyName")
&NBSP;&NBSP;&NBSP;&NBSP; frmSuppliers.Show)(
Caso" btnCustomersFind"
<跨度风格= "">&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; frmCustomerDetails.CompanyNameParameter = _
的&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ; filteredView.Item(0)(" CompanyName")
&n BSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; 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。
&NBSP; &NBSP; Dim rowsFound Como Int32 = filteredView.Count
选择案例行创建
Caso 0'Nenhum Registro ENCONTRADO
MessageBox.Show(_&NBSP; 跨度>
的&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;" Nenhum Registro Correspondentes有孔虫Encontrados" ;, _&NBSP; 跨度>
的&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;" ; Nenhum Registro ENCONTRADO" ;, _&NBSP; 跨度>
的&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; 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.empty Dim 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.Customers End Select Dim 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 ' which form you show depends on the button name |
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 = vazio Sistema 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.Customers End Select 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
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)
这篇关于将列表框选择绑定到数据网格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!