2009-11-05 14 views
1

Je dois limiter les valeurs dans une liste déroulante liée aux données placée dans une colonne modèle dans une grille basée sur le texte d'une autre colonne de cette ligne de la grille. Je veux également que la liste déroulante soit databound. Apparemment, ces deux choses ne sont pas possibles en même temps car cela donne une erreur de liaison de données. Je pense que .net l'empêche parce qu'il y a une probabilité d'une valeur valide apparaissant dans la base de données qui n'existe pas dans la liste déroulante.Liste déroulante liée aux données dans un modèle gridview

Comment puis-je accomplir ceci en utilisant une liste déroulante ou toute autre méthode.

Veuillez nous aider.

Répondre

1

Vous pouvez limiter la valeur de la liste déroulante de databound en filtrant les données à afficher en fonction des valeurs entrées dans la zone de texte, à droite?

En cas grd_RowDataBound mis ff: code de test

protected void grd_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    TextBox txt = (TextBox)e.Row.FindControl("txt"); 
    DropDownList cbo = (DropDownList)e.Row.FindControl("cbo"); 

    if (cbo != null) 
    { 
     cbo.DataSource = _data.getData(txt.Text); //returns filterered datatable based on txt value 
     cbo.DataTextField = "ListName"; 
     cbo.DataValueField = "ListID"; 
     cbo.DataBind(); 
    } 
}