Составное управляющее свойство, которое позволяет кодеру выбирать из опций - PullRequest
0 голосов
/ 16 марта 2010

Вопрос в названии, но чтобы прояснить его при использовании обычного серверного элемента управления, например

<asp:textbox /> 
<CC1:CtrlArticleList SortBy="Title"  ID="compositeControlArticleList" runat="server" />

свойства текстового поля позволяют вам выбрать из выпадающего списка (например, visibility = ... true или false). Как мне воспроизвести это в составном элементе управления?

Добавлен код после вопроса:

Кто-то предложил использовать enum, но не уверен, как это настроить:

enum SortBY { Date, Title };

        [Bindable(false), DefaultValue(""), Description("The sorting type of the DataPager")]
    public SortBY SortBySomething
    {
        get
        {
            SortBY getDate = SortBY.Date;
            if(getDate == (SortBY)ViewState["SortBy"])
            {
                return SortBY.Date;
            }
            else
            {
                return SortBY.Title;
            }
        }
        set 
        { 
            ViewState["SortBy"] = value; 
        }
    }

1 Ответ

0 голосов
/ 16 марта 2010

Просто установите их свойства в вашем составном элементе управления, как в примере из MSDN ниже. Ваши общедоступные свойства будут отображаться в IntelliSence. Если это не так, вам может понадобиться сначала перестроить приложение.

 public class Register : CompositeControl
{
    private Button submitButton;

    // The following properties are delegated to 
    // child controls.
    [
    Bindable(true),
    Category("Appearance"),
    DefaultValue(""),
    Description("The text to display on the button.")
    ]
    public string ButtonText
    {
        get
        {
            EnsureChildControls();
            return submitButton.Text;
        }
        set
        {
            EnsureChildControls();
            submitButton.Text = value;
        }
    }

После просмотра вашего комментария я думаю, что вы ищете (возможно, не идеальный, не тест, но его закрытие):

public enum SortType{Name,Date}    

public SortType SortBy 
{
    get{
           if(ViewState["SortBy"] != null){
              return (SortType)ViewState["SortBy"];}
           else{return SortType.Date;}
    }
    set{ViewState["SortBy"] = value;}
}
...