问题在于标题,但是当您使用像
这样的普通服务器控件时更清楚<asp:textbox />
<CC1:CtrlArticleList SortBy="Title" ID="compositeControlArticleList" runat="server" />
文本框的属性允许您从下拉列表中进行选择(例如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;
}
}
答案 0 :(得分:0)
只需在复合控件中创建属性,就像下面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;}
}