寻找占位符控件 [英] Finding controls in placeholder
本文介绍了寻找占位符控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用AJAX来使其中包含面板包含标签和单选按钮列表或的CheckBoxList根据条件的用户控件。 有一个在.aspx页面中,其中控制应是一个占位符。 我需要找到列表从占位符 我想这样的:
i'm using AJAX to make a user control which contains a panel that contains label and RadioButtonList or CheckBoxList according to a condition. There is a placeholder in .aspx page where that control should be in. I need to find List from placeholder I tried this:
public static int id = 1;
QuestionPanelControl q1 ;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LoadQuestionPanelControl();
}
}
//Next Button
protected void Button1_Click(object sender, EventArgs e)
{
id++;
if (id <= 10)
{
//LoadQuestionPanelControl();
PlaceHolder p = (PlaceHolder)Page.FindControl("PlaceHolder1");
QuestionPanelControl c1 = (QuestionPanelControl)p.FindControl("QuestionPanelControl1");
// QuestionPanelControl c1 = (QuestionPanelControl)p.FindControl("Panel_Question");
RadioButtonList rb = c1.ChildRadioButtonList;
if (rb.SelectedIndex == 0)
{
//DB
}
else if (rb.SelectedIndex == 1)
{
//DB
}
else
{
Lsb_Unanswered.Items.Add("Question #" + id);
}
LoadQuestionPanelControl();
}
}
public void LoadQuestionPanelControl()
{
Session.Add("ID",id);
q1= new QuestionPanelControl();
q1.ID = "QuestionPanelControl1";
Control c = Page.LoadControl("QuestionPanelControl.ascx");
PlaceHolder1.Controls.Clear();
PlaceHolder1.Controls.Add(c);
}
当我用破发点,我发现,控制磷属性为0。
When I use break points, I found that Controls property of p is 0.
注:ChildRadioButtonList在QuestionPanelControl属性。 任何建议...
Note: ChildRadioButtonList is a property in the QuestionPanelControl. Any suggestions...
推荐答案
试试这个code:
PlaceHolder p = (PlaceHolder)FindControlRecursive(Page, "PlaceHolder1");
public static Control FindControlRecursive(Control ctrl, string controlID)
{
if (string.Compare(ctrl.ID, controlID, true) == 0)
{
// We found the control!
return ctrl;
}
else
{
// Recurse through ctrl's Controls collections
foreach (Control child in ctrl.Controls)
{
Control lookFor = FindControlRecursive(child, controlID);
if (lookFor != null)
return lookFor; // We found the control
}
// If we reach here, control was not found
return null;
}
}
这篇关于寻找占位符控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文