Элементы управления недоступны с помощью in radpanelbar
Я использую RadPanelBar для отображения элементов, и мне нужно добавить некоторые элементы управления под каждым элементом. Мне удалось создать элемент управления, и я вижу его с помощью текстового поля. Но я получаю нулевой объект, когда пытаюсь получить доступ к элементам управления с помощью метода findcontrol в событии нажатия кнопки. Вот код, который я использую в этом примере. Я был бы признателен вам за помощь.
ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС:
<telerik:RadPanelBar ID="RadPanelBar" runat="server" Width="60%"> <ExpandAnimation Type="None" /> <CollapseAnimation Type="None" /> </telerik:RadPanelBar> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
С фоновым кодом:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadFaqs(); } } private void LoadFaqs() { List<Model.FAQCategory> FaqCategories = FaqHelper.GetFaqCategories(); List<Model.FAQ> FaqsByCategory = null; int count = FaqCategories.Count; foreach (Model.FAQCategory faqCat in FaqCategories) { if (count > 0) { // Populate parent RadPanelItem PanelItem = new RadPanelItem(); PanelItem.Value = faqCat.FAQCategoryID.ToString(); PanelItem.Text = faqCat.Description; PanelItem.Expanded = true; TextBox txtTest = new TextBox(); txtTest.ID = "txtTest"; RadPanelItem ChildlItem = new RadPanelItem(); ChildlItem.Value = "ChildlItem" + count.ToString(); //ChildlItem.ContentTemplate = new MyRepeaterItemTemplate(txtTest); ChildlItem.Controls.Add(txtTest); //PanelItem.ContentTemplate = new MyRepeaterItemTemplate(txtTest); //PanelItem.Controls.Add(txtTest); PanelItem.Items.Add(ChildlItem); PanelItem.Expanded = false; //PanelItem.DataBind(); RadPanelBar.Items.Add(PanelItem); RadPanelBar.ExpandMode = PanelBarExpandMode.SingleExpandedItem; } count = count - 1; } } protected void Button1_Click(object sender, EventArgs e) { //var radPanelItems = RadPanelBar.GetAllItems(); int itemCount = 0; Objects.FollowUp.Faq objFaq; string ctrlName; foreach (RadPanelItem pnlItem in RadPanelBar.GetAllItems()) { TextBox txt = (TextBox)pnlItem.FindControl("txtTest"); itemCount = pnlItem.Items.Count; if (pnlItem.Items.Count > 0) { //Repeater rptQes = (Repeater)pnlItem.FindControl("rptQuestions"); //Repeater FaqRepeat = pnlItem foreach (RadPanelItem child in pnlItem.Items) { TextBox txt1 = (TextBox)child.FindControl("txtTest"); Repeater rptQes = (Repeater)child.FindControl("rptQuestions"); } } } } public class MyRepeaterItemTemplate : ITemplate { Control ctrlToAdd; public MyRepeaterItemTemplate(Repeater rptQes) { ctrlToAdd = (Repeater)rptQes; } public MyRepeaterItemTemplate(TextBox rptQes) { ctrlToAdd = (TextBox)rptQes; } public void InstantiateIn(Control container) { // do something else container.Controls.Add(ctrlToAdd); } }
Что я уже пробовал:
Я попробовал с простым управлением текстовым полем с помощью RadPanelBar
Vincent Maverick Durano
Возможно, здесь есть кто-то, кто знает об элементах управления Telerik, но я думаю, что у вас больше шансов разместить его на специализированных форумах Telerik:http: / / www. telerik. com / community/forums. aspx