我有一个中继器而不是创建一个表:
<itemtemplate>
<tr id="theTableRow" runat="server">
<td>
<asp:LinkButton runat="server"
OnClientClick="todo"
Text="Do Something" />
</td>
</tr>
</itemtemplate>
注:行OnClientClick="todo"
。
在最终呈现的代码中,我希望待办事项包含对 javascript 函数的调用,传递:
- 生成的表格行的 ID,以及
- 当前绑定对象的属性的 Eval
现在对于一些伪代码:
伪代码1:
OnClientClick="DoSomething(theTableRow, CromulentGuid); return false;"
伪代码 2
OnClientClick="javascript:DoSomething(theTableRow, CromulentGuid); return false;"
伪代码 3
OnClientClick="javascript:DoSomething(theTableRow, <%# Eval("CromulentGuid") %>); return false;"
伪代码 4
OnClientClick="javascript:DoSomething(<%= theTableRow %>, <%# Eval("CromulentGuid") %>); return false;"
伪代码 5
OnClientClick='javascript:DoSomething(<%= Eval(theTableRow) %>, <%# Eval("CromulentGuid") %>); 返回错误;'
无论使用什么 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 代码无法生成前者,即使后者可读性较差。
相关问题: