我正在尝试编写一个通用函数来搜索给定父级中的所有表单输入控件,以便以后可以重新填充表单的值。
我将每个控件的ID和VALUE存储在一个 cookie 中,并FindControl(ID)
在设置其 VALUE 之前通过使用来定位控件来重新填充控件。
一切正常,除非我有多个用户控件实例,其中有子控件。
例如,一个 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()
.
我想要的是类似于的东西FindControl(ID)
,但使用 CLIENTID 代替,以便我可以区分不同用户控件中具有相同 ID 的子控件。
我反对必须手动存储所有控件的完整路径(以某种方式),然后使用FindControl(IDa).FindControl(IDb).FindControl(IDc)...
(或其他)深入到子控件的想法。
一定有更简单的方法吧?
还是我接近这一切都错了?建议赞赏,谢谢。