【发布时间】:2009-01-26 15:37:11
【问题描述】:
我有一个中继器而不是创建一个表:
<itemtemplate>
<tr id="theTableRow" runat="server">
<td>
<asp:LinkButton runat="server"
OnClientClick="todo"
Text="Do Something" />
</td>
</tr>
</itemtemplate>
注意:OnClientClick="todo" 行。
在最终呈现的代码中,我希望 todo 包含对 javascript 函数的调用,传递:
- 生成的表格行的ID,以及
- 当前绑定对象的属性的评估
现在是一些伪代码:
伪代码 1:
OnClientClick="DoSomething(theTableRow, CromulentGuid); return false;"
伪代码 2
OnClientClick="javascript:DoSomething(theTableRow, CromulentGuid); return false;"
伪代码 3
OnClientClick="javascript:DoSomething(theTableRow, ); return false;"
伪代码 4
OnClientClick="javascript:DoSomething(, ); return false;"
伪代码 5
OnClientClick='javascript:DoSomething(, );返回假;'
无论使用什么 ASP.NET 代码,我都希望呈现的 HTML 是:
<tr id="ctl00__itemRepeater_ctl01_theTableRow">
<td>
<a
onclick="DoSomething('ctl00__itemRepeater_ctl01_theTableRow', '19a149db-5675-4eee-835d-3d78372ca6f9'); return false;"
href="javascript:__doPostBack('ctl00$itemRepeater$ctl01$ctl04','')">
Do Something
</a>
</td>
</tr>
我也可以:
<tr id="ctl00__itemRepeater_ctl01_theTableRow">
<td>
<a
onclick='DoSomething("ctl00__itemRepeater_ctl01_theTableRow", "19a149db-5675-4eee-835d-3d78372ca6f9"); return false;'
href="javascript:__doPostBack('ctl00$itemRepeater$ctl01$ctl04','')">
Do Something
</a>
</td>
</tr>
注意:我可以接受第二种形式,因为我知道它在功能上是相同的,并且 ASP.NET 代码无法生成前者,即使后者可读性较差。
相关问题:
ASP.NET: How to access repeater generated elements from javascript?
【问题讨论】: