Существует ли способ добавить onclick событие к управлению сервером Маркировки ASP.NET?

Если вы включите все исключения (Ctrl + Alt + E) и установите флажок «Исключения времени выполнения на общем языке», я получу исключения FileNotFound при выполнении ваших тестов.

Добавить ссылку на отсутствующие пакеты (я нашел эти 2)

<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" /> <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />

Должен решить эту проблему.

НТН

30
задан fuentesjr 8 October 2008 в 01:45
поделиться

10 ответов

Можно использовать Атрибуты для добавления onclick клиентского обратного вызова.

я не знал, что можно сделать это на тегах span, но если бы это работает, можно добавить, что 'onclick' lblMyLabel.Attributes.Add("onclick", "foo();");

, Но foo(); должен был бы быть стороной клиента функция JavaScript.

System.Web.UI.WebControls.Label НЕ имеет события сервера OnClick. Вы могли изучить использование Ajax, если Вы хотите обратный вызов сервера с примером выше.

Вы могли также использовать LinkButton как другой говорить. Можно заставить его не быть похожим на ссылку при помощи CSS, если это просто, которые подчеркивают, что Вы обеспокоены.

ASPX:

<asp:LinkButton ID="LinkButton1" runat="server" 
    CssClass="imjusttext" OnClick="LinkButton1_Click">
LinkButton
</asp:LinkButton>

CSS:

a.imjusttext{ color: #000000; text-decoration: none; }
a.imjusttext:hover { text-decoration: none; }
45
ответ дан 27 November 2019 в 23:35
поделиться

Ваш вопрос не определяет, означаете ли Вы генерировать событие щелчка на сервере (VB или c#) или клиент (JavaScript). При поиске события серверной стороны, необходимо использовать кнопку ссылки с css, который заставляет ссылку появиться как маркировка. Можно тогда использовать событие щелчка серверной стороны кнопки ссылки. Если Вы ищете клиентское событие щелчка - просто вводят его в Вашу разметку управления сервером
asp:label id="MyLabel" runat="server" onclick="javascript:alert('hello');" Text="Click Me";
, ASP.NET испустит дополнительные атрибуты в разметке HTML, которая генерирует.

11
ответ дан 27 November 2019 в 23:35
поделиться

Можно сделать это в коде в page_load, например:

void Page_Load(object sender, EventArgs e) 
{
      lblMyLabel.Attributes.Add("onclick",
           "javascript:alert('ALERT ALERT!!!')");
}
5
ответ дан 27 November 2019 в 23:35
поделиться

Если Вы хотите onclick событие, почему не делают Вы используете linkbutton, который имеет onclientclick событие:

<asp:linkbutton id="lblMyLink" onclientclick="lblMyLink_Click" runat="server">My Label</asp:linkbutton>

можно использовать CSS, чтобы заставить ссылку быть похожей на то, что Вы хотите

2
ответ дан 27 November 2019 в 23:35
поделиться

Я думаю, что Вы можете, но это - клиентский onclick обработчик, не сторона сервера. Это будет жаловаться на атрибут, не поддерживаемый (или некоторые такой), но я думаю, что это представляет правильно. Если Вы хотите к обработчику серверных сторон, я думаю, что необходимо будет сделать LinkButton.

1
ответ дан 27 November 2019 в 23:35
поделиться

Насколько я знаю, что это невозможно. Элемент управления "метка" испускает <span> элемент, который является “unclickable” на стороне сервера. Необходимо было бы заменить Элемент управления "метка" LinkButton.

1
ответ дан 27 November 2019 в 23:35
поделиться

Вы могли всегда развертывать свое собственное управление, которое производит промежуток со стандартной обратной передачей .net JavaScript, но, как указано более раннее использование linklabel с классом CSS было бы легче

0
ответ дан 27 November 2019 в 23:35
поделиться

Другой взлом должен был бы использовать скрытую ссылку или кнопку со стилем = "display:none;" и инициировать щелчок по управлению сервером от функции JavaScript в промежутке.

Что-то вроде этого:

<asp:linkbutton id="lblMyLink" onClick="lblMyLink_Click" runat="server" style="display:none;">My Link</asp:linkbutton>
<span onclick="document.getElementById('lblMyLink').click();">My Label</span>
1
ответ дан 27 November 2019 в 23:35
поделиться

Только для вмешиваний по этой проблеме я использовал маркировку на своей .aspx странице, которая была только, чтобы быть видимой в моем шаблоне DataList Item, если были дочерние записи в наборе данных.

Я добавил функцию onclick к маркировке:

moreOptionsLabel. Атрибуты. Добавьте ("onclick", строка. Формат ("toggle_visibility (' {0} ')", отделение. ClientID));

в моем .cs файле. Это будет теперь управлять тегом Div на .aspx странице, чтобы показать или скрыть записи - потому что onclick указывает на сторону клиента на функцию JavaScript. Заметьте отделение. ClientID, который делает это осуществимым в datalist.

Как отмечено выше - тег span действительно становится функциональным с "onclick". И так как элемент управления "метка" представляется как промежуток после запроса страницы, с помощью Addtribute. Добавьте ("onclick".... работает.

Результат, показывают/скрывают функциональность данных с выполнением обратной передачи. При использовании LinkButton или средств управления simlar - перезагрузка обратной передачи и страницы неизбежна - если Вы не хотите войти в некоторый материал Ajax.

Примечание: тег span не будет выглядеть активируемым по щелчку, если Вы не разработаете его с подчеркиванием и вручаете курсор.

Кредит к этой идее поступает от Will Asrari по http://www.willasrari.com/blog/display-nested-repeaters-and-gridviews-asynchronously/000292.aspx

0
ответ дан 27 November 2019 в 23:35
поделиться

Вам необходимо создать объект класса, который наследуется от метки и обработчика событий onclick, который будет вашим методом и будет использовать ваш объект в качестве настраиваемой метки.

0
ответ дан 27 November 2019 в 23:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: