【发布时间】:2010-11-07 03:35:11
【问题描述】:
我有以下由 ASP.NET 转发器生成的 HTML:
<table>
<tr>
<td><input type="hidden" name="ItemId" id="ItemId" value="3" /></td>
<td>Terry</td>
<td>Deleted</td>
<td>Low</td>
<td>Jun 21</td>
</tr>
<!-- rows repeat -->
</table>
如何按值选择特定的隐藏字段,以便随后操作它旁边的列?
【问题讨论】:
-
为什么不让自己的生活更轻松,通过 ID 获取字段?
-
如果你没有通过 id 得到它,那么有人可能会出现,向你的页面添加一个输入,如果它们都具有相同的值,那么你可能会得到一个错误;通过 id 进行操作似乎更安全
-
@Richard - 在 ASP.NET 中继器中,每个隐藏字段都会获得不同的 ID(应该如此),例如ctl100_ItemId、ctl101_ItemId 等。通常我们以 $('id$=ItemId') (结尾为)来定位这些 ID,但这在这里并不适用。
-
@Flesh- 我很欣赏 ASP.NET 中嵌套控件增加的复杂性,但是您仍然可以获得它们的客户端 ID(如何做到这一点并不是很明显)。查看 ItemDataBound 事件,e.Item.FindControl 和 ClientID。这将以正确的方式完全满足您的需求,而无需求助于 hack,正如 jcollum 指出的那样,这可能会导致错误。
-
是的,我明白,我不是黑客,我需要在客户端进行,因为我通过 Web 方法而不是回发(回发正在保存页面上的其他项目)保存更改并且需要反映在 UI 中为用户带来好处。感谢您的建议