javascript - SheerResponse 未关闭

标签 javascript c# html modal-dialog sitecore

这是 Sitecore 8 Update 2 MVC 网站的一部分,我正在扩展 TreelistEx 字段

我创建了一个纯粹的响应模态对话框,由这段代码调用。

namespace be.absi.kbs.extensions
{
   class AbsiTreeListEx : TreelistEx, IMessageHandler
   {

   void IMessageHandler.HandleMessage(Message message)
    {
        if (message == null)
        { return; }

        if (message["id"] == null)
        { return; }

        if (!message["id"].Equals(ID))
        { return; }

        var fieldInfo = _fieldInformation[message["id"]];

        switch (message.Name)
        {
            case "treelist:edit":
                var nvcEdit = new NameValueCollection { { "source", fieldInfo.Source } };
                Sitecore.Context.ClientPage.Start(this, "Edit", nvcEdit);
                break;

            case "absitreelistex:absiadd":
                var nvcAdd = new NameValueCollection {{"clientFieldId",  message["id"] } };
                Sitecore.Context.ClientPage.Start(this, "AddItem", nvcAdd);
                break;
        }
    }

    protected void AddItem(ClientPipelineArgs args)
    {
        if (args.IsPostBack)
        {
            // Get information from args
        }
        else
        {
            SheerResponse.ShowModalDialog("/QuickContact.html",true);
            args.WaitForPostBack();
        }
    }
    }
}

这是模态对话框的 html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base target="_self">
<title></title>
<script type="text/javascript">
    function sendResponse() {
        var o = new Object();
        o.forename = document.getElementById("FirstNameId").value;
        o.surname = document.getElementById("LastNameId").value;
        o.phone = document.getElementById("PhoneId").value;
        window.returnValue = o;
    }

    function OK() {
        sendResponse();
        window.close();
        self.close();
        document.close();
    }
</script>
</head>
<body onbeforeunload="sendResponse()">
<label>First Name: </label><input type="text" id="FirstNameId" /><br />
<label>Last Name: </label><input type="text" id="LastNameId" /><br />
<label>Phone: </label><input type="text" id="PhoneId" /><br />
<a href="#" id="btnSaveImage" target="_self" onclick="OK()">
    OK
</a><br />
<input type="button" value="OK" onclick="OK()" />

我想要的是用户填写几个字段。当用户单击“确定”时,将返回值并关闭窗口。 我所缺少的是对话框屏幕的自动关闭。

我已经尝试了几乎所有可以在网络上找到的方法,但仍然不起作用。

有谁知道我还可以尝试什么?

最佳答案

我找到了一种关闭 Sheerresponse 创建的模态对话框的方法:

window.parent.$('.ui-dialog-content:visible').dialog('close');

关于javascript - SheerResponse 未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33032352/

相关文章:

javascript - 匹配没有至少两个分号的左括号和右括号

javascript - 在不更改 url 的情况下注入(inject)新的历史条目。就像谷歌地图一样

javascript - 如何找到支持HTML5和CSS3的智能电视?

html - 清除元素前后的 float

javascript - 如何将 td 文本与单元格可见部分的顶部对齐?

c# - 在 C# 中使用 yield

c# - 异常处理程序中间件未捕获

c# - EWS 托管 API : Can I load properties for multiple items with one EWS call, 仅给出项目 ID?

php - 在 Javascript 文件中在屏幕上打印 html 输入属性和变量

javascript - 错误时出现错误 : ENOENT: no such file or directory, stat '/public/main.html'( native )