Как я могу вставить разметку для кнопки ASP на странице ASP, которая находится в текстовом файле? - PullRequest
0 голосов
/ 11 февраля 2019

Есть ли способ прочитать разметку ASP из текстового файла и вывести ее на страницу?

Я использую службу карт Azure, и у нас есть всплывающие окна на выводах.Я хотел бы добавить кнопку ASP во всплывающее окно, чтобы пользователи могли "выбрать" местоположение, но я не могу понять, как это сделать.

В настоящее время у нас есть "шаблон" для нашего всплывающего содержимого.в текстовом файле, который читается во время создания карты.Я не могу вставить элемент управления ASP в этот текстовый файл, разметка отображается точно так же, как в текстовом файле, поэтому кнопка не отображается, но текст <asp:Button ID="Button1" runat="server" Text="Button" /> добавляется в вывод HTML, он просто отображается как ничто.

Любые предложения о том, как добавить кнопку ASP, были бы хорошими.

ОБНОВЛЕНИЕ:

Причина, по которой шаблон хранится в текстовом файле, заключается в том, что он читается и анализируетсяв метод, который заменяет определенные элементы HTML в этом текстовом файле фактическими данными, которые используются для отображения и скрытия определенных элементов в шаблоне в зависимости от того, какой вывод карты выбран.Переменная Azure Maps popupTemplate - это строка, содержащая HTML-разметку для отображения во всплывающем окне.Мне нужно передать эту строку HTML в Карты Azure popupTemplate, чтобы ее можно было показать.Я не думаю, что частичное представление будет работать по этой причине.

Причина, по которой я хочу, чтобы кнопка ASP была действительно для простоты использования.Карта находится внутри элемента управления ASCX.При нажатии этой кнопки необходимо обновить значение свойства в элементе управления, закрыть модальный объект Bootstrap, а затем выполнить обработчик событий, который перехватывается родительской страницей, на которой размещается элемент управления.Затем эта родительская страница обновляет панель обновления, которая отображает значение свойства в этом элементе управления.Я уверен, что это можно сделать только с помощью javascript, но я понятия не имею, как этого добиться.Я был бы открыт к учебникам по этому вопросу, но скажу, что когда я добавил стандартную кнопку HTML в свой шаблон и включил событие onclick, чтобы просто отобразить предупреждение, карта не загрузилась.Я удаляю событие onclick с кнопки, и оно загружается нормально.Я не уверен, почему, но это другая проблема.

ОБНОВЛЕНИЕ 2:

@ ADyson, сейчас вся обработка выполняется на стороне сервера, единственная обработка выполняется на стороне клиента, когдапользователь нажимает на фактический значок на карте.Когда это происходит, JS, предоставляемый Azure, вызывает появление всплывающего окна и заменяет заполнители фактическими данными из (теперь статического) источника данных, который был создан на стороне сервера до того, как карта когда-либо отображалась.

Когда кнопканажал, что не обновит всю страницу.Он закрывает модальное состояние с помощью атрибутов данных, которые предоставляет Bootstrap (через javascript), затем вызывает событие на стороне сервера, которое вызывает асинхронную обратную связь, которая обновляет текст в некоторых элементах управления, которые находятся внутри панели обновления, и затем вызывает метод Update() в этом обновлении.панель, так что выбранная точка карты отображается как выбранная.Никогда не обновится вся страница.Я знаю это, потому что помимо точек на карте под картой находится текстовый список результатов поиска.Этот текстовый список также показывает кнопку.Эти кнопки являются элементами управления ASP, которые добавляются с помощью элемента управления Repeater, и они делают то, что мне нужно для кнопок во всплывающем шаблоне.

Есть ли способ вызвать событие нажатия ASP из другого элемента управления, не являющегося кнопкой ASP?Это будет сделано, но поскольку кнопки в списке репитеров добавляются динамически, я понятия не имею, как ссылаться на них, так как не могу установить их идентификаторы, на которые я могу ссылаться.У кнопок действительно есть атрибут данных, который уникален, хотя я мог бы ссылаться на него, но я не уверен, как получить ссылку на него.Могу ли я найти значение атрибута данных и вернуть ссылку на кнопку, используя javascript, а затем установить событие HTML onclick для вызова события click() этой кнопки?

Причина, по которой я не хочу просто обновлять клиентскую часть HTML, заключается в том, что когда пользователь нажимает кнопку «Выбрать это местоположение», свойство в элементе управления ASCX обновляется.Это свойство используется для дальнейшей обработки позже.

Мне удалось выяснить, почему карта перестала работать при добавлении данных события onclick.Это была ошибка, из-за которой не удалось избежать одинарных кавычек при создании выходного скрипта.

Я мог бы поделиться кодом, но я не уверен, сколько вам нужно увидеть или какой код будет даже полезен.

Класс, содержащий методы и свойства для создания javascript карты (включая всплывающий шаблон, для которого требуется кнопка), содержит около 290 строк и имеет ссылки на 4 других класса и 2 интерфейса.Это может быть трудно поделиться всем этим.Часть кода также содержит некоторую частную и конфиденциальную информацию, которую необходимо очистить.

Похоже, вы говорите мне, что это на самом деле невозможно, и что мне нужно найти другой способ.сделать это.

1 Ответ

0 голосов
/ 14 февраля 2019

Всплывающие окна обычно генерируются на лету.Однако ваш код ASP.NET, кажется, работает во время сервера, что означает, что он должен быть сгенерирован заранее.Использование встроенного всплывающего окна не является хорошим вариантом для вашего сценария.Если вам необходимо использовать элементы управления ASP.NET, а не стандартный HTML, я рекомендую создать панель, отдельную от карты, а затем разместить ее поверх карты по мере необходимости, используя абсолютное позиционирование.По сути, это то, что всплывающее окно делает под прикрытием, но это позволит вам использовать классическую функциональность ASP.NET.

...