странности findcontrol () в элементах управления html и asp.net? - PullRequest
0 голосов
/ 20 января 2012

Может кто-нибудь предложить объяснение, почему asp: imagebutton выдает мне неправильно сформированную ошибку html, а элемент ввода html - нет? Я знаю, что это о findcontrol () в onclientclick назначение. Они написаны в одном и том же формате, но, может быть, не должны быть?

 <ItemTemplate>
     <input type="image" src="Resources/info.png"         onclick="toggle('<%# Container.FindControl("PresetUploadDescription").ClientID %>');return false;" /> 
     <asp:ImageButton ImageUrl="Resources/info.png" OnClientClick="toggle('<%# Container.FindControl("PresetUploadDescription").ClientID %>');return false;" ToolTip="info" ID="Description" runat="server"/>
.... 

1 Ответ

0 голосов
/ 20 января 2012

Нельзя использовать конструкцию <% ...%> в элементе управления, который выполняется на сервере.(runat = "server")

<% # ...%> используется для привязки данных или операторов типа Eval.

<% = ...%> эквивалентно оператору Response.Write, который выглядит как то, что вы пытаетесь сделать (запишите ClientID определенного элемента управления).К сожалению, это тоже не сработает - вы получите

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

Для исправления необходимо добавить атрибут OnClientClick в элемент управления Imagebutton через страницу Code Behind:

Description.Attributes.Add("OnClientClick", 
"toggle('" + FindControl("PresetUploadDescription").ClientID + "');return false;");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...