首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DNN 7在modale中打开页面/模块

DNN 7在modale中打开页面/模块
EN

Stack Overflow用户
提问于 2015-02-10 08:37:33
回答 1查看 435关注 0票数 0

在DNN 7上,我有一个显示用户信息的网格。我想设置一个“编辑动作”,编辑用户,喜欢进入管理面板。

所以我选择把modale变成同一个页面。

代码语言:javascript
复制
<rad:GridTemplateColumn HeaderStyle-Width="0" ItemStyle-HorizontalAlign="Center" AllowFiltering="False">
    <ItemTemplate>
        <a href="#" data-id="<%#((CustomerViewModel)Container.DataItem).UserID%>" class="e">
            <img src='<%=ResolveUrl("~/Icons/Sigma/Edit_16x16_Standard.png")%>' title='Edit user' />
        </a>
    </ItemTemplate>
</rad:GridTemplateColumn>

// edit user infos
$('.e').click(function () {
    var url = "<%= GetEditUrlUser() %>".replace(new RegExp("KEYFIELD", "g"), $(this).attr("data-id"));
    //alert(url);
    dnnModal.show(url, true, 550, 950, false, '');
    return false;
});

这里是我的cs函数

代码语言:javascript
复制
public string GetEditUrlUser()
    {
        // I need to show "dnndev.me/en-us/Admin/User-Accounts/ctl/Edit/mid/"+ModuleId+"/UserId/KEYFIELD/filter/All/pagesize/10/currentpage/0?popUp=true ";
        var url = Globals.NavigateURL("393", "Edit", "mid=" + ModuleId, "UserID=KEYFIELD", "filter/All/pagesize/10/currentpage/0", "popUp=true");
        return url;
    }

但是这并不好,因为Globals.NavigateURL()返回我所在的页面

我也看过ResolveUrl()函数,但没有成功地完成一些事情。

所以如果有人能帮我,或者给我举个例子/提示,那就太好了。

谢谢

编辑:它与这段代码一起工作,但它看起来并不优化,而且真的很棒。

代码语言:javascript
复制
public string GetEditUrlUser()
    {
        var url = Globals.NavigateURL("Edit", "mid","393","UserID","KEYFIELD", "filter/All/pagesize/10/currentpage/0", "popUp=true");
        return url;
    }

编辑2:为了提高效率,我实际上得到了这个。但这不管用,我有一个空白的莫代尔。

但是这种方式看起来确实更好,因为它将搜索自己的管理模块。

代码语言:javascript
复制
public string GetEditUrlUser()
    {
        // dnndev.me/en-us/Admin/User-Accounts/ctl/Edit/mid/"+ModuleId+"/UserId/KEYFIELD/filter/All/pagesize/10/currentpage/0?popUp=true

        var moduleController = new ModuleController();
        var adminUserModule = moduleController.GetModuleByDefinition(PortalId, "User Accounts");
        var url = EditUrl(adminUserModule.TabID, "Edit", false, "mid="+adminUserModule.ModuleID, "userId=KEYFIELD");
        return url;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-10 13:00:14

好吧,我想,终于,我明白了。

ASCX代码将是

代码语言:javascript
复制
<rad:GridTemplateColumn HeaderStyle-Width="0" ItemStyle-HorizontalAlign="Center" AllowFiltering="False">
    <ItemTemplate>
        <a href="#" data-id="<%#((CustomerViewModel)Container.DataItem).UserID%>" class="e">
            <img src='<%=ResolveUrl("~/Icons/Sigma/Edit_16x16_Standard.png")%>' title='Edit user' />
        </a>
    </ItemTemplate>
</rad:GridTemplateColumn>

使用一些Javascript函数进行自我更新,而无需重新加载页面。

代码语言:javascript
复制
function refreshGrid() {
    // grdCustomers should be the ID of your grid
    $find("<%= grdCustomers.ClientID %>").get_masterTableView().rebind();
}

// edit user infos
$('.e').click(function () {
    var url = "<%= GetEditUrlUser() %>".replace(new RegExp("KEYFIELD", "g"), $(this).attr("data-id"));
    dnnModal.show(url,/*showReturn*/true, 550, 950, true, 'javascript:parent.window.refreshGrid()');
    return false;
});

在CS文件中,应该是。

代码语言:javascript
复制
public string GetEditUrlUser()
{
    var moduleController = new ModuleController();
    var adminUserModule = moduleController.GetModuleByDefinition(PortalId, "User Accounts");
        var url = Globals.NavigateURL(adminUserModule.TabID, "Edit", "mid=" + adminUserModule.ModuleID, "userId=KEYFIELD", "popUp=true");
    return url;
}

而且效果很好。

我希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28427239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档