Выпадающий список настраиваемого типа поля sharepoint

Я создал свой настраиваемый тип поля для перечисления доступных пользователей в раскрывающемся списке. Класс My Field наследуется от SPFieldChoice, а класс FieldControl наследуется от DropDownChoiceField. Теперь я написал код внутри класса FieldControl как,

this.ddlInfoBox = new DropDownList();    
SPSite site = SPContext.GetContext(this.Context).Site;
SPWeb cWeb = SPContext.Current.Web;
Hashtable ht = new Hashtable();
SPUserCollection spUsers = cWeb.AllUsers;
foreach (SPUser item in spUsers)
{    
    SPFieldUser o= new SPFieldUser(
    ht.Add(item.Name, item);
}
this.ddlInfoBox.DataTextField = "Key";
this.ddlInfoBox.DataValueField = "Value";
this.ddlInfoBox.DataSource = ht;
this.ddlInfoBox.DataBind();

т.е. я пытаюсь отобразить раскрывающийся список с именами пользователей. Теперь свойство Value:

public override object Value
{
    get
    {
        EnsureChildControls();                
        return this.ddlInfoBox.SelectedValue;
    }

    set
    {
        EnsureChildControls();                
        this.ddlInfoBox.SelectedValue = (string)this.ItemFieldValue;
    }
}

Допустим, я закончил с настраиваемым типом поля, когда я использую это поле в списке с именем «Temp» и пытаюсь создать элемент списка, он показывает мне доступных пользователей для этого сайта, когда я создаю элемент, данные будут сохранены как строка для выбранного пользователя, и когда я пытаюсь просмотреть этот список как веб-часть, отфильтровав значение пользователя как [Me]. то есть документы, назначенные мне, это не позволило мне сделать, потому что это строковое значение, а не значение SPFieldUser. Как я могу сохранить это строковое значение как SPFieldUser, которое обычные люди и группа хранят в типе поля Out of the box?


person Tejas    schedule 24.06.2009    source источник
comment
Почему вы вызываете EnsureChildControls из своего свойства Value? Будьте очень осторожны, так как это может повлиять на жизненный цикл страницы ASP.NET.   -  person Alex Angas    schedule 24.06.2009


Ответы (1)


Разве нельзя унаследовать от SPFieldUser вместо SPFieldChoice? А для DropDownChoiceField использовать UserField?

person Colin    schedule 24.06.2009