2015-12-21 2 views
0

Je travaille sur RadGridView de telerik. J'ai un "GridViewComboBoxColumn" avec une liste de chaînes comme source de données. Maintenant, le problème est que lorsque je remplis la vue de la grille avec des données, il est possible que la valeur dans les données ne soit pas disponible dans la source de données de chaînes pour cette colonne qui aboutit à une valeur vide.comment afficher le texte personnalisé dans les données liées GridViewComboBoxColumn

J'ai essayé de définir DropDownStyle sur RadDropDownStyle.DropDown mais cela ne change rien. Et j'ai juste besoin d'afficher les données même si cela n'est pas présent dans la liste déroulante.

Voici un code pour vous aider à mieux le comprendre.

Dim lstValues As New List(Of String) 
    lstValues.Add("Approved") 
    lstValues.Add("Declined") 
    lstValues.Add("Pending") 

    Dim col5 As GridViewComboBoxColumn = RadGridView1.Columns("column2") 
    col5.DataSource = lstValues 
    col5.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown 

Maintenant, la ligne ajoutée serait la suivante.

RadGridView1.Rows.Add("Application Name", "Processing") 

Comme vous pouvez voir que colonne2 n'a pas élément nommé « traitement » de sorte qu'il ne soit pas affiché et montrant comme vide.

Merci d'avance pour l'aide.

Cordialement

+0

Pouvez-vous s'il vous plaît modifier votre question et ajouter votre code –

Répondre

0

Vous pouvez utiliser le cependant, formatting events et définir le texte de la cellule à tout ce dont vous avez besoin, notez que la valeur de la cellule ne sera pas modifié par cela, mais c'est ce que vous avez besoin pour autant que je peux comprendre .

void radGridView1_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e) 
    { 
     if (e.Column.Name == "column2" && e.Row.Cells["someColumn"].Value == something) 
     { 
      e.CellElement.Text = "some text"; 
     } 
     else 
     { 
      e.CellElement.ResetValue(LightVisualElement.TextProperty, ValueResetFlags.Local); 
     } 
    } 
+0

Merci beaucoup. Cela semble avoir résolu le problème. Cependant, une question cependant, pourquoi avons-nous besoin de "e.CellElement.ResetValue" ici? –

+0

L'article l'explique. La grille utilise la virtualisation de l'interface utilisateur et les cellules sont en cours de réutilisation. Donc, pour éviter que vos modifications soient appliquées sur des cellules indésirables, vous avez besoin de cette réinitialisation. Si cela répond à votre question, veuillez marquer mon message comme réponse. – checho

+0

Oui, bien sûr. Merci –