Вызов ClientID из aspx

"")" />

это не работает, ошибка говорит: Сообщение об ошибке Parser: серверные теги не могут содержать конструкции <%...%>.

Любые подходы, чтобы решить это? Спасибо;)

3 ответа

Решение

Вы вызываете событие JS (onchange), а не событие сервера, поэтому просто перейдите this.id,

<input type="checkbox" id="chbSaveState" runat="server" tabindex="3"  
onchange="SaveState(this.id)" /> 

Чтобы быть понятным, this.id а также <%=chbSaveState.ClientID%> вернет то же значение в этом случае. Так как вы звоните это на событие chbSaveState, вы можете просто использовать легко доступное свойство JS здесь, а не <%=chbSaveState.ClientID%>, который требует, чтобы сервер возвращал идентификатор, сгенерированный сервером для этого элемента управления.

Вы можете сделать это с помощью jQuery следующим образом:

var control = '#<%= chbSAveState.ClientID%>';
$(control).change(function(){
    SaveState($(this).id);
});

У меня нет большого опыта работы с серверными элементами управления, но возможно:

<input type="checkbox" id="chbSaveState" runat="server" tabindex="3" 
onchange="SaveState(chbSaveState.ClientID)" />
Другие вопросы по тегам