2010-07-05 9 views
2

Je tente de créer un type de données personnalisé. L'intention étant une liste déroulante. En ce moment, je peux accéder au contrôle que j'ai créé mais aucune propriété ou valeur ne s'affiche en son sein. Juste le vide déroulant.Création d'un type de données personnalisé dans Umbraco

public partial class usercontrols_admin_customDataType_CountryDropDown : 
    System.Web.UI.UserControl, 
    umbraco.editorControls.userControlGrapper.IUsercontrolDataEditor 
{ 
    public string umbracoValue; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Page.IsPostBack) 
     { 
      DataSet ds = new DataSet(); 

      FormFieldBuilder countries = new FormFieldBuilder(); 
      ds = countries.GetAllCountries(); 

      ddCountries.DataSource = ds; 
      ddCountries.DataTextField = ds.Tables[0].Columns["DisplayName"].ToString(); 
      ddCountries.DataValueField = ds.Tables[0].Columns["guiCountryID"].ToString(); 
      ddCountries.DataBind(); 
     } 
    } 

    #region IUsercontrolDataEditor Members 

    public object value 
    { 
     get 
     { 
      return ddCountries.SelectedValue; 
     } 
     set 
     { 
      if (value != null) 
      { 
       ddCountries.SelectedValue = value.ToString(); 
      } 
     } 
    } 

    #endregion 
} 

Répondre

3

Cette ligne:

if (Page.IsPostBack)

devrait être:

if (!Page.IsPostBack)

Sinon, le menu déroulant ne sera pas rempli qu'après le formulaire a été soumis (réaffecté)

+0

fait le passage et maintenant que je reçois cette erreur: « ddCountries » a une SelectedValue qui est invalide parce qu'elle n'existe pas dans la liste des éléments. Nom du paramètre: valeur – JGrimm

+0

Cela indique que la chaîne de valeur n'existe pas dans la liste déroulante ddCountries. Essayez de retirer cette partie du code et vérifiez que cela fonctionne. Le menu déroulant devrait s'afficher. Une fois que vous êtes sûr que le menu déroulant apparaît, vérifiez la chaîne qui est en valeur (écrivez sur la page ou faites défiler le code, etc.). –

+0

Je rencontre le même problème, comment avez-vous réussi à résoudre ce problème? (La valeur SelectedValue est invalide) – Schoof

0

Télécharger U Composant add-on & le télécharger dans le package. là vous pouvez créer vos propres types de données personnalisés avec l'aide de cet addon, il n'y a pas besoin de coder.