0

質問はタイトルにありますが、次のような通常のサーバーコントロールを使用するときに明確にするために

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

textbox のプロパティを使用すると、ドロップダウン リストから選択できます (たとえば、visibility=...true または false)。これを複合制御で複製するにはどうすればよいですか?

質問があったので追加されたコード:

誰かが列挙型の使用を提案しましたが、これを設定する方法がわかりません:

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; 
        }
    }
4

1 に答える 1

0

以下のMSDNの例のように、複合コントロールのプロパティを作成するだけです。その後、パブリックプロパティがインテリジェンスに表示されます。そうでない場合は、最初にアプリを再構築する必要があります。

 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;}
}
于 2010-03-16T16:23:25.937 に答える