Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Parametri DataGridViewComboBoxColum.
lunedì 02 dicembre 2013 - 01.20
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
lun 2 dic 2013 - 01:20
Ciao a tutti.
Uso Visual Basic 2008 e Sql Server 2008.
Ho bisogno di utilizzare delle DataGridViewComboBoxColumn. In rete ho trovato un esempio di cui descrivo parte di seguito, che adattato alle mie esigenze, in parte risolvo il mio problema ad eccezione del parametro della clausola where in quanto se metto il parametro cosi come scritto di seguito ‘16’ nella prima stringa e ‘71’ nella seconda funziona. Io però vorrei che i parametri li devo inserire in base all’esigenza da una comboBox o textBox. Per essere più preciso vorrei che una volta selezionata una voce dalla prima comboBoxColumn, mi estrae ‘IDPro’ che mi fa da paremetro nella seconda. Spero di avere esposto il mio problema in modo chiaro. Ho fatto delle prove usando in commandtext e inserendo dei paramters ma non ha funzionato.
Grazie anticipatamente per l’eventuale risposta.
Ciao a tutti Peppino.
Mi scuso se il testo è un po lunghetto.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim qry As String
qry = "Select IDPro ,Provincia from Province where IDReg='16' "
mdlGrid.AddComboBoxColumns(DBGrid, 1, "Provincia", "IDPro", "IDProvincia", qry)
qry = "Select IDCom ,Comune from Comuni where IDPro='71'"
mdlGrid.AddComboBoxColumns(DBGrid, 2, "Comune", "IDCom", "IDComune", qry)
End Sub
‘ Modulo interessato
Module mdlGrid
Public Sub AddComboBoxColumns(ByVal grd As DataGridView, ByVal addAt As Integer, ByVal cName As String, ByVal SourceField As String, ByVal DestinationField As String, ByVal qry As String)
Dim cboCol As DataGridViewComboBoxColumn
cboCol = CreateComboBoxColumn(cName, DestinationField)
SetDataSource(cboCol, cName, SourceField, qry)
cboCol.HeaderText = cName
grd.Columns.Insert(addAt, cboCol)
grd.Columns.Remove(DestinationField)
End Sub
Public Function CreateComboBoxColumn(ByVal cName As String, ByVal DestinationField As String) As DataGridViewComboBoxColumn
Dim col As New DataGridViewComboBoxColumn()
With col
.DataPropertyName = DestinationField
.HeaderText = cName
.DropDownWidth = 160
.Width = 90
.MaxDropDownItems = 5
.FlatStyle = FlatStyle.Popup
.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
End With
Return col
End Function
Public Sub SetDataSource(ByVal cboColumn As DataGridViewComboBoxColumn, ByVal cName As String, ByVal SourceField As String, ByVal qry As String)
With cboColumn
.DataSource = FillTable(qry)
.DisplayMember = cName
.ValueMember = SourceField
End With
End Sub
End Module
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 3 dic 2013 - 07:08
devi gestire l'evento selectedIndexChanged nella prima combo.
In questo evento devi andare a prendere l'id interessato per settare il popolamento della seconda combo
Ciao
fammi sapere se basca ciò
Riccardo D'Aria
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
mar 3 dic 2013 - 21:28
Ciao a Tutti.
Ciao Riccardo grazie per la risposta, di seguito ho messo la sub sul quale mi hai suggerito di intervenire, non ho cercato ne provato a modificarla perché non so dove. Quindi se non è chiedere troppo, potresti dedicarmi un po del Tuo tempo prezioso per effettuare le modifiche necessarie. Confidando nella disponibilità di tutti Voi come sempre, ringrazio ancora e saluto.
Ciao Peppino.
Private Sub ComboBox_SelectedIndexChanged( _
ByVal sender As Object, ByVal e As EventArgs)
On Error GoTo Err
Dim editCombo As DataGridViewComboBoxEditingControl = CType(sender, DataGridViewComboBoxEditingControl)
If Not editCombo.Focused Then Exit Sub
Select Case DBGrid.CurrentCell.ColumnIndex
Case 0
If editCombo.Items.Count > -1 Then
Dim tempCol2 As DataGridViewComboBoxCell = CType(DBGrid.Rows(DBGrid.CurrentCell.RowIndex).Cells(1), DataGridViewComboBoxCell)
Dim rVal As New FillComboCell
rVal = PopulateComboCell("Select IDCom ,Comune from Comuni where IDReg='16' and IDProv=" + editCombo.SelectedValue.ToString)
With tempCol2
.DataSource = rVal.tb
.DisplayMember = "Comune"
.ValueMember = "IDCom"
.Value = rVal.firstValue
End With
DBGrid.Rows(DBGrid.CurrentCell.RowIndex).Cells(1).Value = rVal.firstValue
rVal = Nothing
End If
End Select
Exit Sub
Err:
MsgBox(Err.Description, MsgBoxStyle.Critical, "ComboBox_SelectedIndexChanged")
End Sub
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !