我正在以编程方式创建多行控件;每个都包含一个复选框和一个文本框。
我想以某种方式识别复选框的 id,以便它知道要删除哪个文本框。解决这个问题的最佳方法是什么?
您创建了控件,因此您可以控制其名称。给它一个 GUID 或你制作的序列号。
但是......也许问题是所有权问题之一。您的问题意味着您只能按名称访问控件。由于您以编程方式创建了它,这意味着您对它有一个引用。因此,请保留对您创建的控件的引用。
现在,深入研究应用程序,如果您想删除它,这意味着您已经知道要删除什么,这就引出了一个问题,为什么您需要一个名字?
抱歉,如果这些不是您之后的答案,但我希望它们能提出有关设计的有用问题。
您可以组成某种命名模式,例如复选框的“cbx-[row num]”和文本框的“txt-[row num]”。
这样,您将拥有一组名为“cbx-1、cbx-2、cbx-3”的控件和名为“txt-1、txt-2、txt-3”的匹配文本框。为“cbx-X”找到匹配的“txt-X”应该很简单。
编辑:您可以使用 System.Web.UI.FindControl(string) 通过它的 id 属性来查找控件。