【发布时间】:2009-04-11 16:18:21
【问题描述】:
为我的自定义 ASP.net 服务器控件生成的 HTML 代码为子控件生成 name 属性,而不是 id 属性。像这样:
<span id="GridView2_ctl02_editdis">
<input type="text" name="GridView2$ctl02$editdis$ctl00"/>
</span>
自定义控件本身的 ID 显然是正确的。
对我来说更奇怪的是,ID 确实会生成有时(我不知道在什么条件下)。但是具有该 ID 的 FindControl() 在服务器端返回 null。 FindControl() 带有 name 属性的值就可以了。
类似这样的:
<span class="TextBox" id="GridView2_ctl02_editdis">
<input type="text" id="GridView2_ctl02_editdis_ctl00" name="GridView2$ctl02$editdis$ctl00"/>
</span>
对于上述情况,FindControl("GridView2$ctl02$editdis$ctl00") 工作正常,FindControl("GridView2_ctl02_editdis_ctl00") 不行。
如何确保 ID 一致且可预测?
【问题讨论】:
标签: asp.net custom-controls custom-server-controls