Как я могу создать объект в .ascx? - PullRequest
0 голосов
/ 12 апреля 2011

Я обернул элемент управления asp: DropDown, чтобы я мог создать множество его экземпляров, каждый из которых использует одну и ту же дополнительную функциональность. Я хочу иметь возможность создавать этот объект полностью в .ascx, а не с помощью кода позади. Я почти там, за исключением ListItems.

Вот что у меня есть, может кто-нибудь помочь мне выяснить, как получить элементы списка для заполнения?

<Control:DropDown ID="choice" runat="server" DropDownListLabel="Some Choice:"
QueryString="choice" SelectedIndex="0" ListItems='<%# new ListItemCollection(){
new ListItem("<no filter>", "-1"), new ListItem("Yes", "y"), new ListItem("No", "n")
} %>' />

Все работает, за исключением ListItems, хотя элементы списка работают, как и ожидалось, из кода позади. Любая помощь о том, как я могу заставить аксессор ListItems для правильного вызова?

Спасибо заранее, Brett

1 Ответ

1 голос
/ 12 апреля 2011

Вы, вероятно, должны были создать свой элемент управления для наследования от System.Web.UI.WebControls.DropDownList, затем переопределить рендеринг и добавить свойства, которые вы хотите получить дополнительно, это позволит вам получить что-то вроде следующего:

<Control:DropDown id="mycontrol" runat="server" DropDownListLabel="Some Choice:" ..>
    <asp:ListItem Text="<no filter" value="-1" />
    ...
</Control:DropDown>

Где DropDownListLabel - это добавленное свойство. Конечно, в вашем случае вы бы добавили QueryString как свойство

...