FindControl对动态复选框不起作用

本文关键字:不起作用 复选框 动态 FindControl | 更新日期: 2023-09-27 18:02:02

查找控件似乎与我的动态复选框不起作用;我要做的是查看用户是否选中了某个复选框,以及最终选中了哪些复选框。

在我的代码我有一个测试,看看它是否正常工作

 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

FindControl对动态复选框不起作用

可能父控件没有ID。

而不是尝试:

Response.Write("Parent of the text box is : " + myControl2);

查找父节点的类型。我觉得如果你期望家长是桌子那你就错了。它可能是一个TableCell

myControl2可能在层次结构中更高;继续在层次结构中查找控件,它可能是mycontrol1.Parent.Parent或更多父引用。ASP。. NET有时会在层次结构中放置其他控件,因此它可能不是直接父控件。

HTH .

创建复选框时是否有runat="server" ?

何时调用此测试方法。考虑调用它onPreRender,它应该返回ID。当您动态创建控件并添加到页面时,如果没有分配nny ID,请在呈现给浏览器

之前分配它们。