jQuery UI Dialog + ASP.NET用户控件

时间:2012-04-12 04:50:29

标签: asp.net jquery-ui

我正在寻找解决问题的其他方法。我们使用ElFinder来浏览文件,我们希望允许用户通过右键单击上下文菜单(“更改权限”)更改文件元素的访问权限。到目前为止我提出的解决方案是在jQuery模式对话框窗口中加载服务器端ASP.NET用户控件。此用户控件将包含添加/删除用户对所选元素的访问权所需的逻辑。

jQuery Dialog脚本看起来像这样(为了便于阅读略微改变),其中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元素,其中包含一个更新面板,其中包含一个占位符,用于我的usercontrol,并且可见性设置为none。任何人都有这方面的提示吗?

挑战2:虽然我想要找出那个但我认为在寻求其他意见时可能是值得的。有没有更好的方法来解决这个问题?我应该使用带有HTML的纯jQuery并调用服务器端.ashx方法来检索数据,而不是ASP.NET用户控件吗?

1 个答案:

答案 0 :(得分:1)

  1. 您可以通过在uploadpanel内创建一个隐藏按钮,然后像这样触发它来执行此操作:

    __ doPostBack('&lt;%= Button.ClientID%&gt;','');

  2. 就个人而言,我会删除UpdatePanel并进行jQuery AJAX调用以更新对话框窗口的内容,但这取决于用户控件的复杂程度。很难说没有看到更多的代码。