コード例 #1
0
ファイル: ReferConfig.cs プロジェクト: huaminglee/hfoa
        public static string ReferControlEx(
        this HtmlHelper helper,
        string ModuleName,
        string NameSpace, bool Multiselect)
        {
            string str = string.Empty;

            ADOSys_Config_Refer ReferInstance = new ADOSys_Config_Refer();
            ADOSys_Config_Field_Refer DListInstance = new ADOSys_Config_Field_Refer();
            if (string.IsNullOrEmpty(ModuleName) || string.IsNullOrEmpty(NameSpace))
            {
                return string.Empty;
            }

            Sys_Config_Refer MRefer = ReferInstance.GetListByWhere(" AND R_ModuleName='" +
                ModuleName + "'")[0];
            List<Sys_Config_Field_Refer> D_List = DListInstance.GetListByWhere(" AND D_ModuleName='" +
                ModuleName + "'");

            #region JqGrid Html 列表显示部分
            string html = @"
            <div class='Comm_Ref' id='{ModuleName}{M_NameSpace}' style='display:none'>
                {ToolBar}
                <div id='{M_NameSpace}search'>
                </div>
                <table id='{M_NameSpace}grid'' class='scroll' cellpadding='0' cellspacing='0'>
                </table>
                <div id='{M_NameSpace}pager' class='scroll' style='text-align: center;'>
                </div>
                <div style='float:right;padding-top:20px'>
                    <span> <input id='btnok_{M_NameSpace}' type='button' value='确定'/> <input type='button' value='关闭' onclick='{M_NameSpace}Close()'/> </span>
                </div>
            </div>";
            #endregion

            #region JqGrid Js部分
            string js_header = @"<script type='text/javascript'>";
            string js_footer = @"</script>";
            string jsBody = @"
            var {M_NameSpace}_{ModuleName}_GridControl = {
                setupGrid: function(grid, pager, search, dataurl) {
                    grid.jqGrid({
                        url: dataurl,
                        mtype: 'post',
                        rowNum: 10,
                        rowList: [10,20,50],
                        pager: pager,
                        sortorder: 'asc',
                        viewrecords: true,
                        multiselect: {MultiSelect}, //多选时出现checkbox
                        width: '{M_Width}',
                        height: '{M_Height}',
                        autowidth: false,
                        rownumbers: true,
                        gridview: true,
                        footerrow: false,
                        colNames: [{M_ColNames_list}],
                        colModel: [{M_ColModel_List}],
                        gridComplete: function() {
                            var ids = grid.jqGrid('getDataIDs');
                            for (var i = 0; i < ids.length; i++) {
                                var cl = ids[i];
                                var ret = grid.jqGrid('getRowData', cl);
                                var operation='';
                                {M_GridComplete}
                                grid.jqGrid('setRowData', ids[i], { Edit: operation });
                            }
                        },
                        userDataOnFooter: true
                    })
                },
                Init: function(dataurl, targetPreFix) {
                    var gridobj = targetPreFix + 'grid';
                    var pagerobj = targetPreFix + 'pager';
                    var searchobj = targetPreFix + 'search';
                    {M_NameSpace}_{ModuleName}_GridControl.setupGrid($('#' + gridobj), $('#' + pagerobj), $('#' + searchobj), dataurl);
                    $('#' + gridobj).navGrid('#'+pagerobj, { refresh: false, edit: false, add: false, del: false, search:false,multipleSearch:false });
                }
            }
            ";
            #endregion

            string btnMJs = @"
                         $('#btnok_{M_NameSpace}').click(function(){
                                var grid = $('#{M_NameSpace}grid');
                                var curids = grid.getGridParam('selarrrow'); //获取选择行的id
                                if(curids!=''){
                                var ids=new Array();
                                var selectRows=new Array();
                                //selectRows.length=0;
                                ids=curids.toString().split(',');
                                for(var i=0;i<ids.length;i++){
                                        var data = grid.getRowData(ids[i]); //获取行号为curid的数据
                                        if(data!=null){
                                            selectRows.push(data);
                                        }
                                }
                                {M_NameSpace}callback(selectRows);
                                $('#{ModuleName}{M_NameSpace}').dialog('close');
                        }
                       });
            ";
            string btnSJs = @"
                     $('#btnok_{M_NameSpace}').click(function(){
                             var grid = $('#{M_NameSpace}grid');
                             var curid = grid.getGridParam('selrow'); //获取选择行的id
                             var data = grid.getRowData(curid); //获取行号为curid的数据
                             if(curid==null) return;
                             {M_NameSpace}callback(data);
                             $('#{ModuleName}{M_NameSpace}').dialog('close');
                    });
            ";

            //0131 YSW
            #region JqGrid调用部分
            string callJs = @"
            <script type='text/javascript'>
                var {M_NameSpace}callback;
                $(document).ready(function() {
                   {M_NameSpace}_{ModuleName}_GridControl.Init('{M_URL}','{M_NameSpace}');
                   //初始化层
                   $('#{ModuleName}{M_NameSpace}').dialog({ autoOpen: false, width: {Width}, height: {Height},title:'{M_Title}' });
                   //$('#{M_NameSpace}grid').jqGrid('filterGrid','#{M_NameSpace}grid', { multipleSearch:true } );

                    {BtnJs}

                });
                function {ModuleName}{M_NameSpace}OpenRefer(callback){
                    $('#{ModuleName}{M_NameSpace}').dialog('open');
                    {M_NameSpace}callback=callback;
                }

                function {ModuleName}{M_NameSpace}OpenReferWithFilter(_filter,callback){
                    var _url={filterUrl};
                    var refGrid=$('#{M_NameSpace}grid');
                    refGrid.setGridParam({ url: _url });
                    refGrid.trigger('reloadGrid');
                    $('#{ModuleName}{M_NameSpace}').dialog('open');
                    {M_NameSpace}callback=callback;
                }

                function {M_NameSpace}Close(){
                    $('#{ModuleName}{M_NameSpace}').dialog('close');
                }

                function {M_NameSpace}ToolBarSearch(){
                    $('#{M_NameSpace}grid').jqGrid('searchGrid', { multipleSearch:true } );
                }

            </script>
            ";
            #endregion

            #region 生成列头
            string strColNames = string.Empty;
            D_List = D_List.OrderBy(o => o.D_Order).ToList();
            for (int i = 0; i < D_List.Count; i++)
            {
                if (i != (D_List.Count - 1))
                {
                    strColNames += "'" + D_List[i].D_Name.Trim() + "'" + ",";
                }
                else
                {
                    strColNames += "'" + D_List[i].D_Name.Trim() + "'";
                }
            }
            #endregion

            #region 生成列详细配置
            StringBuilder header = new StringBuilder();
            string header_template = @"{ name: '{D_Index}',width:100,index: '{D_Index}', align: 'center', {D_Hidden} searchoptions:{ sopt: ['eq', 'ne', 'cn'] } }";
            string header_template_fix = ",";
            for (var m = 0; m < D_List.Count; m++)
            {
                string tmpFix = m != (D_List.Count - 1) ? header_template_fix : "";
                header.AppendLine(header_template
                    .Replace("{D_Name}", D_List[m].D_Name.Trim())
                    .Replace("{D_Index}", D_List[m].D_Index.Trim())
                    .Replace("{D_Hidden}", !string.IsNullOrEmpty(D_List[m].D_Hidden) ? "hidden:" + D_List[m].D_Hidden + "," : "")
                    + tmpFix);
            }
            #endregion

            str += html;
            str += js_header + jsBody + js_footer;
            str += callJs;

            string url = string.Empty;
            string filter = string.Empty;
            if (!string.IsNullOrEmpty(MRefer.R_Url))
            {
                url = MRefer.R_Url;
                filter = "'" + MRefer.R_Url + "?filter='+_filter";
            }
            else
            {
                url = string.Format("/Sys_Config_Refer/GetData/?name={0}&m={1}&n={2}", MRefer.R_TableName, MRefer.R_ModuleName, MRefer.R_NameSpace);
                filter = "'/Sys_Config_Refer/GetData/?name=" + MRefer.R_TableName + "&m=" + MRefer.R_ModuleName + "&n=" + MRefer.R_NameSpace + "&filter='+_filter";
            }

            string tool = string.Empty;
            if (string.IsNullOrEmpty(MRefer.R_Tool))
            {
                tool = "";
            }
            else
            {
                tool = MRefer.R_Tool;
            }

            str = str
                .Replace("{BtnJs}", Multiselect ? btnMJs : btnSJs)
                .Replace("{ModuleName}", ModuleName)
                .Replace("{M_NameSpace}", NameSpace)
                .Replace("{Width}", MRefer.R_Width.ToString())
                .Replace("{Height}", MRefer.R_Height.ToString())
                .Replace("{M_Width}", (MRefer.R_Width * 0.93).ToString())
                .Replace("{M_Height}", (MRefer.R_Height * 0.4).ToString())
                .Replace("{M_Title}", MRefer.R_Title)
                .Replace("{M_ColNames_list}", strColNames)
                .Replace("{M_ColModel_List}", header.ToString())
                .Replace("{M_GridComplete}", "")
                .Replace("{M_URL}", url)
                .Replace("{filterUrl}", filter)
                .Replace("{Width}", "")
                .Replace("{Height}", "")
                .Replace("{Table}", MRefer.R_TableName)
                .Replace("{MultiSelect}", Multiselect ? "true" : "false")
                //.Replace("{ToolBar}", helper.Common_ToolBarForListPage(ModuleName, "",
                //"'add':'hidden','edit':'hidden','del':'hidden','import':'hidden','export':'hidden',view:'hidden'"));
             .Replace("{ToolBar}", helper.GenToolbarNoPermissionHelper(ModuleName,NameSpace,
             tool));

            return str;
        }
コード例 #2
0
        public static string ReferControlEx(
        this HtmlHelper helper,
        string ModuleName,
        string NameSpace, bool Multiselect)
        {
            string str = string.Empty;

            ADOSys_Config_Refer ReferInstance = new ADOSys_Config_Refer();
            ADOSys_Config_Field_Refer DListInstance = new ADOSys_Config_Field_Refer();
            if (string.IsNullOrEmpty(ModuleName) || string.IsNullOrEmpty(NameSpace))
            {
                return string.Empty;
            }

            Sys_Config_Refer MRefer = ReferInstance.GetListByWhere(" AND R_ModuleName='" +
                ModuleName + "'")[0];
            List<Sys_Config_Field_Refer> D_List = DListInstance.GetListByWhere(" AND D_ModuleName='" +
                ModuleName + "'");

            #region JqGrid Html 列表显示部分
            string html = @"
            <div class='Comm_Ref' id='{ModuleName}{M_NameSpace}' style='display:none'>
                {ToolBar}   
                <div id='{M_NameSpace}search'>
                </div>
                <table id='{M_NameSpace}grid'' class='scroll' cellpadding='0' cellspacing='0'>
                </table>
                <div id='{M_NameSpace}pager' class='scroll' style='text-align: center;'>
                </div> 
                <div style='float:right;padding-top:20px'> 
                    <span> <input id='btnok_{M_NameSpace}' type='button' value='确定'/> <input type='button' value='关闭' onclick='{M_NameSpace}Close()'/> </span>  
                </div>   
            </div>";
            #endregion

            #region JqGrid Js部分
            string js_header = @"<script type='text/javascript'>";
            string js_footer = @"</script>";
            string jsBody = @"            
            var {M_NameSpace}_{ModuleName}_GridControl = {
                setupGrid: function(grid, pager, search, dataurl) {   
                    grid.jqGrid({
                        url: dataurl,
                        mtype: 'post',
                        rowNum: 10,
                        rowList: [10,20,50],
                        pager: pager,
                        sortorder: 'asc',
                        viewrecords: true,
                        multiselect: {MultiSelect}, //多选时出现checkbox
                        width: '{M_Width}',
                        height: '{M_Height}',
                        autowidth: false,
                        rownumbers: true,
                        gridview: true,
                        footerrow: false,
                        colNames: [{M_ColNames_list}],
                        colModel: [{M_ColModel_List}],
                        gridComplete: function() {
                            var ids = grid.jqGrid('getDataIDs');
                            for (var i = 0; i < ids.length; i++) {
                                var cl = ids[i];
                                var ret = grid.jqGrid('getRowData', cl);
                                var operation='';
                                {M_GridComplete}                             
                                grid.jqGrid('setRowData', ids[i], { Edit: operation });
                            }
                        },
                        userDataOnFooter: true
                    })
                },
                Init: function(dataurl, targetPreFix) {
                    var gridobj = targetPreFix + 'grid';
                    var pagerobj = targetPreFix + 'pager';
                    var searchobj = targetPreFix + 'search';        
                    {M_NameSpace}_{ModuleName}_GridControl.setupGrid($('#' + gridobj), $('#' + pagerobj), $('#' + searchobj), dataurl);
                    $('#' + gridobj).navGrid('#'+pagerobj, { refresh: false, edit: false, add: false, del: false, search:false,multipleSearch:false });
                } 
            }
            ";
            #endregion


            string btnMJs = @"
                         $('#btnok_{M_NameSpace}').click(function(){
                                var grid = $('#{M_NameSpace}grid');
                                var curids = grid.getGridParam('selarrrow'); //获取选择行的id 
                                if(curids!=''){
                                var ids=new Array();
                                var selectRows=new Array();
                                //selectRows.length=0;
                                ids=curids.toString().split(',');
                                for(var i=0;i<ids.length;i++){
                                        var data = grid.getRowData(ids[i]); //获取行号为curid的数据
                                        if(data!=null){
                                            selectRows.push(data);
                                        }
                                }
                                {M_NameSpace}callback(selectRows);                
                                $('#{ModuleName}{M_NameSpace}').dialog('close');
                        } 
                       });
";
            string btnSJs = @"    
                     $('#btnok_{M_NameSpace}').click(function(){
                             var grid = $('#{M_NameSpace}grid');
                             var curid = grid.getGridParam('selrow'); //获取选择行的id 
                             var data = grid.getRowData(curid); //获取行号为curid的数据
                             if(curid==null) return;                             
                             {M_NameSpace}callback(data);   
                             $('#{ModuleName}{M_NameSpace}').dialog('close');
                    });  
";

            //0131 YSW
            #region JqGrid调用部分
            string callJs = @"
            <script type='text/javascript'>
                var {M_NameSpace}callback;
                $(document).ready(function() {
                   {M_NameSpace}_{ModuleName}_GridControl.Init('{M_URL}','{M_NameSpace}');
                   //初始化层
                   $('#{ModuleName}{M_NameSpace}').dialog({ autoOpen: false, width: {Width}, height: {Height},title:'{M_Title}' });    
                   //$('#{M_NameSpace}grid').jqGrid('filterGrid','#{M_NameSpace}grid', { multipleSearch:true } );
                    
                    {BtnJs}

                });
                function {ModuleName}{M_NameSpace}OpenRefer(callback){
                    $('#{ModuleName}{M_NameSpace}').dialog('open');     
                    {M_NameSpace}callback=callback;                             
                }
                
                function {ModuleName}{M_NameSpace}OpenReferWithFilter(_filter,callback){                    
                    var _url={filterUrl};
                    var refGrid=$('#{M_NameSpace}grid');
                    refGrid.setGridParam({ url: _url });
                    refGrid.trigger('reloadGrid');     
                    $('#{ModuleName}{M_NameSpace}').dialog('open');           
                    {M_NameSpace}callback=callback;                
                }


                function {M_NameSpace}Close(){
                    $('#{ModuleName}{M_NameSpace}').dialog('close');
                }     
                
                function {M_NameSpace}ToolBarSearch(){
                    $('#{M_NameSpace}grid').jqGrid('searchGrid', { multipleSearch:true } );
                }
                          
            </script>
            ";
            #endregion

            #region 生成列头
            string strColNames = string.Empty;
            D_List = D_List.OrderBy(o => o.D_Order).ToList();
            for (int i = 0; i < D_List.Count; i++)
            {
                if (i != (D_List.Count - 1))
                {
                    strColNames += "'" + D_List[i].D_Name.Trim() + "'" + ",";
                }
                else
                {
                    strColNames += "'" + D_List[i].D_Name.Trim() + "'";
                }
            }
            #endregion

            #region 生成列详细配置
            StringBuilder header = new StringBuilder();
            string header_template = @"{ name: '{D_Index}',width:100,index: '{D_Index}', align: 'center', {D_Hidden} searchoptions:{ sopt: ['eq', 'ne', 'cn'] } }";
            string header_template_fix = ",";
            for (var m = 0; m < D_List.Count; m++)
            {
                string tmpFix = m != (D_List.Count - 1) ? header_template_fix : "";
                header.AppendLine(header_template
                    .Replace("{D_Name}", D_List[m].D_Name.Trim())
                    .Replace("{D_Index}", D_List[m].D_Index.Trim())
                    .Replace("{D_Hidden}", !string.IsNullOrEmpty(D_List[m].D_Hidden) ? "hidden:" + D_List[m].D_Hidden + "," : "")
                    + tmpFix);
            }
            #endregion


            str += html;
            str += js_header + jsBody + js_footer;
            str += callJs;

            string url = string.Empty;
            string filter = string.Empty;
            if (!string.IsNullOrEmpty(MRefer.R_Url))
            {
                url = MRefer.R_Url;
                filter = "'" + MRefer.R_Url + "?filter='+_filter";
            }
            else
            {
                url = string.Format("/Sys_Config_Refer/GetData/?name={0}&m={1}&n={2}", MRefer.R_TableName, MRefer.R_ModuleName, MRefer.R_NameSpace);
                filter = "'/Sys_Config_Refer/GetData/?name=" + MRefer.R_TableName + "&m=" + MRefer.R_ModuleName + "&n=" + MRefer.R_NameSpace + "&filter='+_filter";
            }

            string tool = string.Empty;
            if (string.IsNullOrEmpty(MRefer.R_Tool))
            {
                tool = "";
            }
            else
            {
                tool = MRefer.R_Tool;
            }

            str = str
                .Replace("{BtnJs}", Multiselect ? btnMJs : btnSJs)
                .Replace("{ModuleName}", ModuleName)
                .Replace("{M_NameSpace}", NameSpace)
                .Replace("{Width}", MRefer.R_Width.ToString())
                .Replace("{Height}", MRefer.R_Height.ToString())
                .Replace("{M_Width}", (MRefer.R_Width * 0.93).ToString())
                .Replace("{M_Height}", (MRefer.R_Height * 0.4).ToString())
                .Replace("{M_Title}", MRefer.R_Title)
                .Replace("{M_ColNames_list}", strColNames)
                .Replace("{M_ColModel_List}", header.ToString())
                .Replace("{M_GridComplete}", "")
                .Replace("{M_URL}", url)
                .Replace("{filterUrl}", filter)
                .Replace("{Width}", "")
                .Replace("{Height}", "")
                .Replace("{Table}", MRefer.R_TableName)
                .Replace("{MultiSelect}", Multiselect ? "true" : "false")
                //.Replace("{ToolBar}", helper.Common_ToolBarForListPage(ModuleName, "",
                //"'add':'hidden','edit':'hidden','del':'hidden','import':'hidden','export':'hidden',view:'hidden'"));
             .Replace("{ToolBar}", helper.GenToolbarNoPermissionHelper(ModuleName,NameSpace,
             tool));

            return str;
        }