Когда у меня возникали подобные проблемы, я прибегал к заключению выражения в квадратные скобки и получению результата в виде строки.Я предполагаю, что это потому, что синтаксический анализатор не распознает синтаксис блока рендеринга, встроенный в свойство string.
<asp:Button ID="btnSearch" runat="server" Text="ARA"
OnClientClick='<%= "loadPerson(jQuery(\"#" + txtPersonId.ClientID + "\"))" %>' />
Я давно перешел к тому, чтобы держать мой JavaScript полностью отделенным от разметки, поэтому яможет быть немного нечетким на точных деталях.Если вы хотите отделить ваш javascript от разметки, вы можете добавить обработчик с явной или относительной ссылкой DOM в блоке сценария.Использование селектора «заканчивается с», совпадающего с идентификатором, устраняет необходимость в поиске явного идентификатора, хотя вы также можете это сделать - в приведенном ниже примере показаны оба стиля.
<script type="text/javascript">
$(function() {
$('#' + '<%= btnSearch.ClientID %>').click( function() {
loadPerson( $('input[id$=txtPersonId]') );
});
});
</script>