• window.showModalDialog 返回值


    在网上查了一些资料用于window.showModalDialog返回值,并用于项目中,下面是代码:

        <script language="javascript" type="text/javascript">
            function OpenWin(id) {
                 var temp=window.showModalDialog("/test.aspx?ID=" + id + "&DT=" + new Date(), window, "dialogWidth:1020px;dialogHeight:700px;scroll:auto;status:no;help:no;");
                 if (temp === undefined) {
                     return false;
                 }
                 temp = $.parseJSON(temp);
                
                 if (temp.Action == "delete") {
                     if (anSelected.length !== 0) {
                         alert("delete");
                         oTable.fnDeleteRow(anSelected[0]);
                     }
                 }           
                 else if (temp.Action == "update") {
                     var content = unescape(temp.Content);
                     $("TD", $(content)).each(function (i) {
                         if (i == 0) {
                             return;
                         }
                         var tdHTML = $(this).html();
                         $("TD", anSelected).eq(i).html(tdHTML);
                     });
                 }
            }
        </script>

    下面是test页面的代码,关闭窗体的代码,一般会在后台注册

        <script type="text/javascript">
            function closeWindow(action, content) {
                //var arr = new Array(2);
                //arr[0] = action;
                //arr[1] = "<td>Record Number</td><td>Detail Description</td><td> Wave</td><td>Visite Ref.访谈场次 </td> <td>Date访谈日期</td><td> Function类别</td><td>ProgrameProject 项目</td><td>类别II</td><td>建议类型</td><td>状态</td><td> 创建者</td>";
                //arr[1] = content
                //window.returnValue = "{\"Action\":\"" + arr[0] + "\",\"Content\":\"" + escape(arr[1]) + "\"}";
                window.returnValue = "{\"Action\":\"" + action + "\",\"Content\":\"" + escape(content) + "\"}"
                window.close();
            }
        </script>
        <base target="_self" />

    在后台注册比较长的字符串中要注册一些特殊的字符,下面是后台的一些过滤源代码

        private string GetModifiedMessage(SPListItem item)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<tr>");
            sb.Append("<td><input type=\"checkbox\" name=\"chk\" value=\"" + ConvertNULL(item["ID"]) + "\" />" + "</td>");
            if (string.IsNullOrEmpty(ConvertNULL(item["RecordNumber"])))
            {
                sb.Append("<td>" + ConvertNULL(item["RecordNumber"]) + "</td>");
            }
            else
            {
                sb.Append("<td>" + ConvertNULL(item["RecordNumber"]).Split('#')[1]+ "</td>");
            }
            sb.Append("<td>" + ConvertNULL(item["IssueDetail"])+ "</td>");
            sb.Append("<td>" + ConvertNULL(item["场次"]) + "</td>");
            sb.Append("<td>" + ConvertNULL(item["Date"]) + "</td>");
            sb.Append("<td>" + GetShortCode(ConvertNULL(item["Category1"])) + " " + ConvertNULL(item["类别一"]) + "</td>");
            sb.Append("<td>" + GetShortCode(ConvertNULL(item["Category2"])) + " " + ConvertNULL(item["类别二"]) + "</td>");
            sb.Append("<td>" + GetShortCode(ConvertNULL(item["Category3"])) + " " + ConvertNULL(item["类别三"]) + "</td>");
            sb.Append("<td>" + GetShortCode(ConvertNULL(item["Category4"])) + " " + ConvertNULL(item["类别四"]) + "</td>");
            sb.Append("<td>" + ConvertNULL(item["Status"]) + "</td>");
            sb.Append("<td>" + ConvertNULL(item["Author"]).Split('#')[1]+ "</td>");
            //sb.Append("<td>" + "<input type=\"button\" value=\"Confirm\" onclick=\"OpenWin(" + ConvertNULL(item["ID"]) + ")\" class=\"bnA\" /></td>");
            sb.Append("</tr>");
            return sb.ToString().Replace("<br/>", string.Empty).Replace("\r", "\\n").Replace("\n", "\\n").Replace("'","\'");
        }


    后台引用的代码:

    ClientScript.RegisterStartupScript(this.GetType(), "close", string.Format("closeWindow('delete','{0}');", GetModifiedMessage(item)), true);
  • 相关阅读:
    chrome手动同步书签
    MySQL(5.6/5.7版本)卸载方法
    Windows 搭建IIS+PHP+MySQL环境
    按照innode删除结点
    wsl区分大小win10不区分大小写解决方案
    Docker容器里的centos疑难杂症
    [UGUI]源码调试和修改
    [UnityAPI]EditorWindow类 & Editor类
    [UnityAPI]Selection类
    [Lua]require
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2637730.html
Copyright © 2020-2023  润新知