Bonjour,
Je suis relativement amateur en DotNet, mais on me demande de faire une chose assez particulière...
Dans un UltraWebGrid, une des colonnes est sensée contenir une dropDownList pour pouvoir mettre à jour les valeurs. La liste est générée depuis la base de données.
Jusque la, ce serait simple. Seulement, dans mon ultragrid, d'une ligne à l'autre, les valeurs proposées par les dropdown, peuvent différer, selon la valeur d'une des cellules de la ligne.
Il se pose cependant un problème, c'est que les liste de valeurs pour la dropdown sont liées à la colonne entière. Voici mon code actuel, qui remplit la dropdown :
Sauf que comme dans ce cas, je lie le datasource à la colonne, toutes mes lignes ont la même liste de choix. (le code fonctionne en dehors du comportement que je voudrais)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Protected Sub dgrdProduct_InitializeRow(ByVal sender As Object, ByVal e As _ Infragistics.WebUI.UltraWebGrid.RowEventArgs) Handles dgrdProduct.InitializeRow Dim ds As ApprovalData = _ Facade.Approval.GetCheckValueDescriptionByCheckValueTypeCode(e.Row.Cells.FromKey(KeyColumnValueTypeCode).Value.ToString) With e.Row.Cells.FromKey(KeyColumnValue).Column.ValueList .DataSource = ds .DisplayMember = ValueDescription .ValueMember = ValueDescription .DataBind() End With End Sub
On m'a parlé d'essayer de charger toutes les données nécessaires dans la dropdown indépendamment du contenu de la cellule de référence, et ensuite de faire un filtre dessus... Mais j'avoue que je suis totalement perdu sur comment m'y prendre...
Pour plus de clarté, voici à quoi devrait ressembler le résultat :
===============
Column Value
===============
(Ligne 1 Dropdown, reference value = 1)
- Yes
- No
===============
(Ligne 2 Dropdown, reference value = 2)
- Abcd
- Efgh
- Ijkl
===============
(Ligne 3 Dropdown, reference value = 1)
- Yes
- No
===============
La reference value étant donc la valeur de la cellule de la colonne KeyColumnValueTypeCode.
D'avance merci !
Partager