1. 程式人生 > >彈出層列表父子頁面傳值

彈出層列表父子頁面傳值

需求: 

 若將layer彈出層作為單獨的外掛引用的話,需要先引入jQuery1.8以上版本和layer.js以及layer.css。(layer文件

 $("#addressBtn").click(function () {
            var dept = $("#OrderDepts").val();
            if (dept == 0) {
                $.MsgBox.Alert("溫馨提示", "請選擇採購部門!");
                return;
            }
            layer.open({
                        type: 2,
                        title: '個人地址資訊列表',
                        shadeClose: true,
                        shade: false,
                        maxmin: true, 
                        area: ['1000px', '500px'],
                        content: "@Url.Action("GetAddressByDept", "Member")?deptId=" + $("#OrderDepts").val()
                    });
        });
@section scripts{
    <script type="text/javascript">
        $(function () {
            LoadData();
        })
        //初始化表格  根據查詢條件讀取資料
        function LoadData() {
            var DeptId = "@ViewBag.DeptId";
            //先銷燬表格
            $('#table').bootstrapTable('destroy');
            //初始化表格,動態從伺服器載入資料
            $('#table').bootstrapTable({
                url: '@Url.Action("GetAddressByDept2", "Member")',     //請求後臺的URL(*)
                toolbar: '#toolbar',                //工具按鈕用哪個容器
                striped: false,                     //是否顯示行間隔色
                cache: true,                        //是否使用快取,預設為true,所以一般情況下需要設定一下這個屬性(*)
                pagination: true,                  //是否顯示分頁(*)
                sortable: false,                    //是否啟用排序
                sortOrder: "asc",                   //排序方式
                sidePagination: "client",           //分頁方式:client客戶端分頁,server服務端分頁(*)
                pageNumber: 1,                      //初始化載入第一頁,預設第一頁
                pageSize: 20,                       //每頁的記錄行數(*)
                pageList: [20, 50, 100],        //可供選擇的每頁的行數(*)
                search: false,                      //是否顯示錶格搜尋,此搜尋是客戶端搜尋,不會進服務端,所以,個人感覺意義不大
                strictSearch: false,                //設定為 true啟用 全匹配搜尋,否則為模糊搜尋
                showRefresh: false,                 //是否顯示重新整理按鈕
                clickToSelect: true,                //是否啟用點選選中行
                singleSelect: true,
                uniqueId: "Id",                  //每一行的唯一標識,一般為主鍵列
                queryParamsType: "undefined",
                fixedColumns: false,
                fixedNumber: 1,
                queryParams: function queryParams(params) {
                    var param = {
                        deptId: DeptId,
                        key: $("#name").val()
                    };
                    return param;
                },
                onLoadSuccess: function () { },
                onLoadError: function () { }
            });
        }


        $("#submitAddress").click(function () {
            var address = $("#table").bootstrapTable('getSelections');
            if (address.length == 0) {
                $.MsgBox.Alert("溫馨提示", "還未選擇收貨人資訊!");
                return;
            }
            else { //給父頁面傳值
                $.MsgBox.Confirm("提示", "確定要提交該記錄嗎?", function () {
                    var realName = address[0].RealName;
                    var addressDetail = address[0].Province + "." + address[0].City + "." + address[0].Area + "." + address[0].Address;
                    var mobile_telphone = address[0].Mobile + "/" + address[0].Telphone;     
                    parent.$(".addresslist.receipt.current").removeClass("current");
                    parent.$(".checkicon.current").removeClass("current");
                    var addressHtml = '<div class="addresslist receipt current" onclick="GetCurrentAddress(this)">'+
                        '<span class="checkicon current" > ' +
                        '<svg class="icon" aria-hidden="true">'+
                               '<use xlink: href="#icon-wancheng">'+'</use>'+
                                    '</svg >'+
                               ' </span >'+
                        '<span id="realName">' + realName+'</span>'+
                    '<span id="addressDetail">' + addressDetail+'</span>'+
                        '<span id="mobile_telphone">' + mobile_telphone + '</span>' +
                        '<span id="tempMemberId" style="display:none">' + address[0].Id + '</span>' +
                        '</div>';
                    parent.$("#addresslist").append(addressHtml);
                    parent.$(".addresslist.receipt.current").trigger("click");
                    $.MsgBox.Confirm("提示", "收貨人資訊已經更改,返回結算頁面嗎?", function () {
                        parent.layer.closeAll();
                    });
                });
            }
        });
  </script>
}
public ActionResult GetAddressByDept2(int deptId,string key)
        {
            BaseManage<Member> bm = new BaseManage<Member>();
            QueryOption<Member> option = new QueryOption<Member>();
            option.Conditions.Add(new QueryCondition() { Field = "DeptId", SymbolEnum = QueryConditionSymbol.Equals, Val = deptId });
            if (!string.IsNullOrEmpty(key))
            {
                option.Conditions.Add(new QueryCondition() { Field = "RealName", SymbolEnum = QueryConditionSymbol.Contains, Val = key.Trim() });
            }
            var members = bm.Query(option).Items;
            var address = (from m in members
                           select new AddressInfo() {
                               Id = m.Id,
                               RealName = m.RealName,
                               Province = m.Province,
                               City = m.City, Area = m.Area,
                               Address = m.Address ,
                               Mobile =m.Mobile,
                               Telphone =m.Telphone}).ToList();
            return Json(address,JsonRequestBehavior.AllowGet);
        }