查找控件似乎不适用于我的动态复选框;我想要做的是查看用户是否已经选中了一个复选框,最终还有哪些复选框。
在我的代码中,我有一个测试,看看它是否正常工作
public void test()
{
// Find control on page.
CheckBox myControl1 = (CheckBox)Table1.FindControl("CBX0");
if (myControl1 != null)
{
// Get control's parent.
Control myControl2 = myControl1.Parent;
Response.Write("Parent of the text box is : " + myControl2.ID);
if (myControl1.Checked == true)
{
Response.Write("check box checked");
}
}
else
{
Response.Write("Control not found");
}
}
当我运行我的代码时,它确实打印“文本框的父级”,但它不会打印父级,这应该是mycontrol2.id
答案 0 :(得分:1)
父控件可能没有ID。
而是尝试:
Response.Write("Parent of the text box is : " + myControl2);
找出Parent的类型。我想如果你期望父母成为表,你就错了。它可能是一个TableCell。
答案 1 :(得分:0)
myControl2可能在层次结构中更高;继续钻取层次结构以查找控件,它可能是mycontrol1.Parent.Parent
或更多父引用。 ASP.NET有时会将其他控件放在层次结构中,因此它可能不是直接父级。
HTH。
答案 2 :(得分:0)
创建复选框时是否有runat =“server”?
答案 3 :(得分:0)
你什么时候打电话给这个测试方法。考虑在onPreRender上调用它,它应该返回ID。当您动态创建控件并添加到页面时,如果不指定nny ID,.net会在渲染到浏览器之前分配它们