我正在尝试编写一个通用函数,以搜索给定父对象内的所有表单输入控件,以便以后可以重新填充表单的值。我将每个控件的ID和VALUE存储在cookie中,并在设置其VALUE之前通过使用FindControl(ID)定位该控件来重新填充控件。一切正常,除非在我有一个用户控件的多个实例的情况下,其中有多个子控件。例如,DateRange控件定义了两个文本框...<asp:TextBox ID="txtDateFrom" /><asp:TextBox ID="txtDateTo" />然后在我的表单中,如果我有两个DateRange控件...<my:daterange id="DateRangeA" /><my:daterange id="DateRangeB" />...我现在有2个文本框,其ID均为txtDateFrom(和2x txtDateTo),因此我既无法将这两个值都存储在cookie中(因为它们的ID不是唯一的),也无法使用。我想要的是类似于FindControl()的东西,但是要使用CLIENTID,以便我可以区分不同用户控件中具有相同ID的子控件。我不赞成必须手动存储所有控件的完整路径(以某种方式),然后使用FindControl(ID)(或其他任何方式)向下钻取子控件的想法。必须有一种更简单的方法,对吗?还是我把这一切都弄错了?意见表示赞赏,谢谢。 最佳答案 使控件实现INamingContainer interface根据这篇文章 :  任何实现此接口的控件都会在其中创建一个新的名称空间  保证所有子控件ID属性都是唯一的  在整个应用程序中。另外,请检查此article。关于c# - 如何在C#.net中通过ClientID查找控件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19352796/
10-14 18:03
查看更多