【发布时间】:2023-03-17 02:23:01
【问题描述】:
我正在尝试编写一个通用函数来搜索给定父级中的所有表单输入控件,以便以后可以重新填充表单的值。
我将每个控件的 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(和 2xtxtDateTo),因此我无法将这两个值都存储在 cookie 中(因为它们的 ID 是不是唯一的)也不会使用FindControl()再次检索控件。
我想要的是类似于FindControl(ID) 的东西,但使用 CLIENTID 代替,以便我可以区分不同用户控件中具有相同 ID 的子控件。
我不同意必须手动存储所有控件的完整路径(以某种方式),然后使用 FindControl(IDa).FindControl(IDb).FindControl(IDc)...(或其他)深入到子控件。
一定有更简单的方法吧?
或者我处理这一切都错了?感谢您的建议,谢谢。
【问题讨论】:
标签: c# asp.net findcontrol clientid