私はテーブルを作成するよりもリピーターを持っています:
<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);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")%>); falseを返します; '
使用する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>
注: 2番目の形式は機能的に同一であることがわかっているので問題ありません。また、ASP.NETコードでは、後者の方が読みにくくても、前者を生成できません。
関連する質問: