2010-07-05 6 views
2

Я пытаюсь создать собственный тип данных. Цель - выпадающий список. На данный момент я могу получить доступ к элементу управления, который я создал, но в нем нет никаких свойств или значений. Просто пустое падение.Создание пользовательского типа данных в 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 
} 

ответ

3

Эта линия:

if (Page.IsPostBack)

Должно быть:

if (!Page.IsPostBack)

В противном случае падение вниз не будет заполняться только после того, форма была отправлена ​​(вывешены назад)

+0

Сделал переключатель, и теперь я получаю эту ошибку: «ddCountries» имеет значение SelectedValue, которое недействительно, потому что оно не существует в списке элементов. Имя параметра: значение – JGrimm

+0

Это указывает на то, что строка в значении не существует в раскрывающемся списке ddCountries. Попробуйте извлечь эту часть кода и проверить, что он работает. Выпадающее меню должно отображаться. После того, как вы уверены, что выпадающее меню появляется, проверьте строку, которая находится в значении (запишите на страницу или выполните код и т. Д.). –

+0

У меня такая же проблема, как вам удалось это решить? (Недопустимый параметр SelectedValue) – Schoof

0

загрузить U Компонентное дополнение & загрузите его в пакет. там вы можете создать свои собственные типы данных с помощью этого аддона, нет необходимости кодировать.

Смежные вопросы