2010-11-06 5 views
0

J'ai remarqué que lorsque je remplissais des zones de texte d'une ligne sélectionnée dans une grille, le champ "& nbsp" s'affichait dans la zone de texte.La cellule Gridview vide remplit "& nbsp" dans la zone de texte

Voici la solution que j'ai trouvée. Je vérifie chaque cellule avant de l'ajouter à la zone de texte. J'ai l'impression que je fais quelque chose de mal pour avoir ce problème en premier lieu ou qu'il y a une meilleure façon de le gérer.

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    //// Get the currently selected row using the SelectedRow property. 
    GridViewRow row = GridView1.SelectedRow; 

    // Load data from selected row into textboxes 
    if (row.Cells[1].Text.Trim() != " ") 
    { 
     txtEditCust_ID.Text = row.Cells[1].Text.Trim(); 
    } 




} 

Répondre

0

Supprimer l'énoncé if, il suffit d'utiliser:

txtEditCust_ID.Text = row.Cells[1].Text.Trim(); 

Vous taillez ainsi il devrait enlever le   de toute façon.

+0

'System.String.Trim()' 'ne supprime pas  ' (le texte), du moins pas dans '2.0'. – Bobby

+0

ne fonctionne pas en 4.0 ni –

2
row.Cells[1].Text.Trim() 

ne fonctionne pas pour  , remplacer la place:

row.Cells[1].Text.Replace(" ", "") 
1

Cela fonctionne aussi. Ajouter ce morceau de code sous votre événement rowDataBound

if (e.Row.Cells[1].Text.Length == 0 || e.Row.Cells[1].Text.Equals(" ") || e.Row.Cells[1].Text.Equals("") || e.Row.Cells[1].Text.Equals(string.Empty)) 
       { 
        e.Row.Cells[1].Text = string.Empty; 
       } 
1

utilisation

txtEditCust_ID.Text = Server.HtmlDecode(row.Cells[1].Text.Trim()); 
6

Encore un hack mineur, mais sans doute mieux que de traiter avec &nbsp;. Vous pouvez définir NullDisplayText=" " sur la colonne GridView <asp:BoundField> puis utilisez la condition comme par exemple:

if (String.IsNullOrWhiteSpace(e.Row.Cells[1].Text)) 
{ 
    // do something with e.Row 
} 

Dans ce cas, il n'y a pas &nbsp; pour commencer.

0
if (e.Row.RowType != DataControlRowType.Header && e.Row.RowType != DataControlRowType.Footer && e.Row.RowType != DataControlRowType.Pager) 

Cela supprime l'en-tête, pied de page et téléavertisseur (si vous utilisez) les lignes qui se sont occupés de la &nbsp; pour moi.

0

Si vous voulez vérifier la valeur de la cellule gridview si vide ou null, utilisez ceci:

string decodeCellValue = Context.Server.HtmlDecode(e.Row.Cells[i].Text).Trim(); 
if(string.IsNullOrEmpty(decodeCellValue)) 
{ 
    // Cell value empty or NULL 
} 
else 
{ 
    // Have some value 
} 
+1

S'il vous plaît modifier votre réponse d'abord, vérifiez ceci: http://stackoverflow.com/help/formatting – neohope

Questions connexes