Я ищу альтернативные способы решения проблемы. Мы используем для просмотра файлов, и мы хотим разрешить пользователю изменять права доступа к элементу файла через контекстное меню правой кнопки мыши («Изменить разрешения»). Решение, к которому я придумал, заключается в загрузке пользовательского элемента управления ASP.NET на стороне сервера в модальном диалоговом окне jQuery. Этот пользовательский элемент управления будет содержать логику, необходимую для добавления/удаления доступа пользователя к выбранному элементу.jQuery UI Dialog + пользовательский контроль ASP.NET
скрипт JQuery Диалог выглядит следующим образом (немного изменен для удобства чтения), где DisplayItemAccessConfig() является метод, который вызывается из контекстного меню:
<!-- access control script -->
<script type="text/javascript" charset="utf-8">
function DisplayItemAccessConfig() {
$.getJSON('AccessRights.ashx', function (data) {
var itemName = data["itemName"];
/* set new title (JUST FOR TESTING) */
$(dialog).dialog('option', 'title', itemName);
/* open modal dialog --> */
$(dialog).dialog('open');
});
}
$(function() {
$("#dialog").dialog({
autoOpen: false,
modal: true,
buttons: {
"Ok": function() { $(this).dialog("close"); },
"Cancel": function() { $(this).dialog("close"); }
},
open: function (type, data) {
$(this).parent().appendTo("form");
}
});
});
</script>
Задача 1: найти способ, чтобы перезагрузить пользовательский элемент управления каждый раз, когда отображается всплывающее окно jQuery - это для получения текущих настроек доступа для выбранного элемента. Теперь он загружается, когда страница сначала загружается, поскольку это просто элемент div, содержащий панель обновления с заполнителем для моего пользовательского контроля и видимость, установленную на none. У кого-нибудь есть подсказки?
Задача 2: Пока я пытаюсь понять, что один из них, я думал, что стоит подумать о других мнениях. Есть ли лучший способ решить это? Должен ли я использовать чистый jQuery с HTML и использовать методы .ashx на стороне сервера для извлечения данных вместо пользовательского контроля ASP.NET?
Согласен, комбинация jQuery AJAX и Knockoutjs должна предоставить мне всю необходимую мне функциональность без панелей обновлений и частичных обратных передач. – Andreas