У меня есть повторитель, чем создается таблица:
<itemtemplate>
<tr id="theTableRow" runat="server">
<td>
<asp:LinkButton runat="server"
OnClientClick="todo"
Text="Do Something" />
</td>
</tr>
</itemtemplate>
Примечание: строка OnClientClick="todo"
.
В окончательном отрендеренном коде я хочу, чтобы todo содержал вызов функции javascript, передавая:
- идентификатор сгенерированной строки таблицы и
- Оценка свойства текущего связанного объекта
А теперь для некоторого псевдокода :
Псевдокод 1:
OnClientClick = "DoSomething (theTableRow, CromulentGuid); вернуть false;"
Псевдокод 2
OnClientClick = "javascript: DoSomething (theTableRow, CromulentGuid); вернуть false;"
Псевдокод 3
OnClientClick = "javascript: DoSomething (theTableRow, <% # Eval (" CromulentGuid ")%>); вернуть false;"
Псевдокод 4
OnClientClick = "javascript: DoSomething (<% = theTableRow%>, <% # Eval (" CromulentGuid ")%>); вернуть 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 не может сгенерировать первую, даже если последняя менее читаема.
Смежные вопросы:
ASP.NET: как получить доступ к сгенерированным повторителем элементам из javascript?