コード例 #1
0
ファイル: FileUpload.cs プロジェクト: goupviet/FineUI
        /// <summary>
        /// 渲染 HTML 之前调用(页面第一次加载或者普通回发)
        /// </summary>
        protected override void OnFirstPreRender()
        {
            base.OnFirstPreRender();


            //AddStartupAbsoluteScript("F.form_upload_file=true;");


            if (!String.IsNullOrEmpty(ButtonText))
            {
                OB.AddProperty("buttonText", ButtonText);
            }

            if (ButtonOnly)
            {
                OB.AddProperty("buttonOnly", true);
            }


            string resolvedIconUrl = IconHelper.GetResolvedIconUrl(ButtonIcon, ButtonIconUrl);

            if (!String.IsNullOrEmpty(resolvedIconUrl))
            {
                OptionBuilder buttonOB = new OptionBuilder();
                //buttonOB.AddProperty("cls", " x-btn-text-icon");
                buttonOB.AddProperty("icon", resolvedIconUrl);

                OB.AddProperty("buttonConfig", buttonOB);
            }

            //if (AutoPostBack)
            //{
            //    OB.Listeners.RemoveProperty("change");
            //    OB.Listeners.AddProperty("fileselected", JsHelper.GetFunction(GetPostBackEventReference()), true);
            //}

            if (!String.IsNullOrEmpty(AcceptFileTypes))
            {
                string acceptScript = "cmp.fileInputEl.set({accept:'" + AcceptFileTypes + "'});";
                //OB.Listeners.AddProperty("afterrender", JsHelper.GetFunction(acceptScript, "cmp"), true);
                AddListener("afterrender", acceptScript, "cmp");
            }

            string jsContent = String.Format("var {0}=Ext.create('Ext.form.field.File',{1});", XID, OB.ToString());

            AddStartupScript(jsContent);
        }
コード例 #2
0
ファイル: FileUpload.cs プロジェクト: jeason0813/fineuiofMe
        /// <summary>
        /// 渲染 HTML 之前调用(页面第一次加载或者普通回发)
        /// </summary>
        protected override void OnFirstPreRender()
        {
            base.OnFirstPreRender();


            AddStartupAbsoluteScript("X.form_upload_file=true;");


            if (!String.IsNullOrEmpty(ButtonText))
            {
                OB.AddProperty("buttonText", ButtonText);
            }

            if (ButtonOnly)
            {
                OB.AddProperty("buttonOnly", true);
            }


            string resolvedIconUrl = IconHelper.GetResolvedIconUrl(ButtonIcon, ButtonIconUrl);

            if (!String.IsNullOrEmpty(resolvedIconUrl))
            {
                OptionBuilder buttonOB = new OptionBuilder();
                buttonOB.AddProperty("cls", " x-btn-text-icon");
                buttonOB.AddProperty("icon", resolvedIconUrl);

                OB.AddProperty("buttonCfg", buttonOB);
            }
            //if (TextMode != TextMode.Text)
            //{
            //    OB.AddProperty("inputType", TextModeHelper.GetName(TextMode));
            //}

            if (AutoPostBack)
            {
                OB.Listeners.RemoveProperty("change");
                OB.Listeners.AddProperty("fileselected", JsHelper.GetFunction(GetPostBackEventReference()), true);
            }

            string jsContent = String.Format("var {0}=new Ext.ux.form.FileUploadField({1});", XID, OB.ToString());

            AddStartupScript(jsContent);
        }
コード例 #3
0
ファイル: Container.cs プロジェクト: jeason0813/fineuiofMe
        /// <summary>
        /// 渲染 HTML 之前调用(页面第一次加载或者普通回发)
        /// </summary>
        protected override void OnFirstPreRender()
        {
            base.OnFirstPreRender();

            if (Layout != Layout.Container)
            {
                OB.AddProperty("layout", LayoutHelper.GetName(Layout));

                if (Layout == Layout.Table)
                {
                    OptionBuilder layoutConfigOB = new OptionBuilder();
                    layoutConfigOB.AddProperty("columns", TableConfigColumns);

                    OB.AddProperty("layoutConfig", layoutConfigOB);
                }
                else if (Layout == Layout.HBox || Layout == Layout.VBox)
                {
                    OptionBuilder layoutConfigOB = new OptionBuilder();
                    if (BoxConfigAlign != BoxLayoutAlign.Top)
                    {
                        layoutConfigOB.AddProperty("align", BoxLayoutAlignHelper.GetName(BoxConfigAlign, Layout));
                    }

                    if (BoxConfigPosition != BoxLayoutPosition.Left)
                    {
                        layoutConfigOB.AddProperty("pack", BoxLayoutPositionHelper.GetName(BoxConfigPosition));
                    }

                    if (BoxConfigPadding != "0")
                    {
                        layoutConfigOB.AddProperty("padding", BoxConfigPadding);
                    }

                    if (BoxConfigChildMargin != "0")
                    {
                        layoutConfigOB.AddProperty("defaultMargins", BoxConfigChildMargin);
                    }


                    OB.AddProperty("layoutConfig", layoutConfigOB);
                }
            }
        }
コード例 #4
0
ファイル: Grid.cs プロジェクト: erpframework/FineUI
        private string GetGridStore()
        {
            OptionBuilder storeBuilder = new OptionBuilder();

            // store - fields
            JsArrayBuilder fieldsBuidler = new JsArrayBuilder();
            foreach (GridColumn column in AllColumns)
            {
                JsObjectBuilder fieldBuilder = new JsObjectBuilder();
                fieldBuilder.AddProperty("name", column.ColumnID);

                if (AllowCellEditing)
                {
                    RenderBaseField field = column as RenderBaseField;
                    if (field != null)
                    {
                        if (field is RenderField)
                        {
                            RenderField renderFiled = field as RenderField;
                            if (renderFiled.FieldType != FieldType.Auto)
                            {
                                fieldBuilder.AddProperty("type", FieldTypeName.GetName(renderFiled.FieldType));
                                // 日期类型的,必须要设置这个 dateFormat 属性
                                if (renderFiled.FieldType == FieldType.Date)
                                {
                                    fieldBuilder.AddProperty("dateFormat", DateUtil.ConvertToClientDateFormat(renderFiled.RendererArgument));
                                }
                            }
                        }
                        else if (field is RenderCheckField)
                        {
                            fieldBuilder.AddProperty("type", "boolean");
                        }
                    }
                }
                fieldsBuidler.AddProperty(fieldBuilder);
            }

            // 增加 idProperty
            //JsObjectBuilder idFieldBuilder = new JsObjectBuilder();
            //idFieldBuilder.AddProperty("name", "__id");
            fieldsBuidler.AddProperty("__id");

            string fieldsScript = String.Format("var {0}={1};", Render_GridFieldsID, fieldsBuidler);


            // 自定义Model
            JsObjectBuilder modelOB = new JsObjectBuilder();
            modelOB.AddProperty("extend", "Ext.data.Model");
            modelOB.AddProperty("idProperty", "__id");
            modelOB.AddProperty("fields", Render_GridFieldsID, true);
            storeBuilder.AddProperty("model", String.Format("Ext.define(null,{0})", modelOB), true);

            //storeBuilder.AddProperty("fields", Render_GridFieldsID, true);

            storeBuilder.AddProperty("remoteSort", true);

            // add by wz
            if (EnableGroup)
                storeBuilder.AddProperty("groupField", GroupField);

            // 设置初始排序列
            if (AllowSorting)
            {
                string sortColumnID = GetSortColummID();
                if (!String.IsNullOrEmpty(sortColumnID))
                {
                    JsObjectBuilder sorterBuilder = new JsObjectBuilder();
                    sorterBuilder.AddProperty("property", GetSortColummID());
                    sorterBuilder.AddProperty("direction", SortDirection.ToString());
                    storeBuilder.AddProperty("sorters", sorterBuilder);
                }
            }


            string postbackScript = GetPostBackEventReference("#SORT#").Replace("'#SORT#'", "'Sort$'+sorter.property+'$'+sorter.direction");
            postbackScript = "var sorter=operation.sorters[0];if(sorter){" + postbackScript + "}return false;";

            storeBuilder.Listeners.AddProperty("beforeload", JsHelper.GetFunction(postbackScript, "store", "operation"), true);

            return fieldsScript + String.Format("var {0}=Ext.create('Ext.data.ArrayStore',{1});", Render_GridStoreID, storeBuilder.ToString());

            #region old code

            //storeBuilder.AddProperty("remoteSort", true);
            //storeBuilder.AddProperty("proxy", String.Format("new Ext.ux.AspNetProxy('{0}')", ClientID), true);

            //storeBuilder.AddProperty("autoLoad", "{params:{start:0,limit:" + PageSize + "}}", true);
            //storeBuilder.AddProperty("data", GetDatas());

            //if (AllowSorting)
            //{
            //    // Default sort info
            //    if (SortColumnIndex >= 0 && SortColumnIndex < Columns.Count)
            //    {
            //        JsObjectBuilder sortInfoBuilder = new JsObjectBuilder();
            //        sortInfoBuilder.AddProperty("field", Columns[SortColumnIndex].ColumnID);
            //        sortInfoBuilder.AddProperty("direction", SortDirection);

            //        storeBuilder.AddProperty("sortInfo", sortInfoBuilder);
            //    }
            //}


            //return String.Format("var {0}=new Ext.data.ArrayStore({1});", Render_GridStoreID, storeBuilder.ToString());


            //#region store - data
            ////string dataArrayString = GetDataArrayString(startEndRowIndex[0], startEndRowIndex[1]);



            //int[] startEndRowIndex = GetStartEndRowIndex();
            //// 计算完要渲染到前台的数据的条数,就要检查当前选中的项是不是有越界的
            //ResolveSelectedRowIndexArray(startEndRowIndex[1] - startEndRowIndex[0]);

            //#endregion 
            #endregion

            #region old code

            //JsArrayBuilder rowIndexBuilder = new JsArrayBuilder();

            //if (SelectedRowIndexArray != null && SelectedRowIndexArray.Length > 0)
            //{
            //    foreach (int rowIndex in SelectedRowIndexArray)
            //    {
            //        rowIndexBuilder.AddProperty(rowIndex);
            //    }
            //}
            //string selectRowScript = String.Format("{0}.selectRows({1});", Render_SelectModelID, rowIndexBuilder);
            //// 选中哪些行,这个必须要defer(100),否则选不中,晕(10ms就不行)
            //selectRowScript = String.Format("(function(){{{0}}}).defer(100);", selectRowScript);

            //storeBuilder.AddProperty("listeners", String.Format("{{load:{0}}}", String.Format("function(){{{0}}}", selectRowScript)), true);

            #endregion

            #region old code

            // TODO
            //string selectedRowIndexArrayString = StringUtil.GetStringFromIntArray(SelectedRowIndexArray);
            //// FineUIAjax回发并且Columns发生变化,需要重新
            //if (_FineUIAjaxColumnsChanged)
            //{
            //    string reconfigScript = String.Empty;
            //    reconfigScript += gridStoreScript;
            //    reconfigScript += String.Format("{0}.reconfigure({1},{2});", XID, Render_GridStoreID, Render_GridColumnModelID);
            //    reconfigScript += String.Format("{0}.load();", Render_GridStoreID);
            //    // 重新加载数据后要更新input选中哪些项(因为可能选中项也会变化)
            //    reconfigScript += GetSetHiddenFieldValueScript(SelectedRowIndexArrayHiddenFieldID, selectedRowIndexArrayString);

            //    AddAjaxPropertyChangedScript(reconfigScript);
            //}
            //else
            //{
            //    bool reloadData = false;
            //    string updateSelectRowScript = selectRowScript + GetSetHiddenFieldValueScript(SelectedRowIndexArrayHiddenFieldID, selectedRowIndexArrayString);
            //    if (AjaxPropertyChanged("DataArrayString", dataArrayString))
            //    {
            //        string reloadDataScript = String.Format("{0}.loadData({1});", Render_GridStoreID, dataArrayString);
            //        // 虽然有可能“不需要修改隐藏字段的值,因为SelectedRowIndexArray其实并没有变化,只是重新加载数据(reloadData)导致选中项丢失了”
            //        // 但是我们还是修改了input的值,这没有什么影响
            //        reloadDataScript += updateSelectRowScript;

            //        AddAjaxPropertyChangedScript(reloadDataScript);

            //        reloadData = true;
            //    }

            //    // 不管SelectedRowIndexArray==null或者是不为空,都要做这一步
            //    // 在Ajax回发中,selectedRowIndexArrayString改变了,并且没有重新加载数据
            //    if (AjaxPropertyChanged("SelectedRowIndexArrayString", selectedRowIndexArrayString) && !reloadData)
            //    {
            //        AddAjaxPropertyChangedScript(updateSelectRowScript);
            //    }

            //} 
            #endregion

            #region old code

            //gridStoreScript += "\r\n";
            //if (EnableClientPaging)
            //{

            //    // 进行分页时,改变隐藏input的值,以在回发时保持状态
            //    // 同时注意:客户端分页时,清空选中的值
            //    JsObjectBuilder listenersBuilder = new JsObjectBuilder();
            //    listenersBuilder.AddProperty(OptionName.Load, String.Format("function(store,records,options){{Ext.get('{0}').dom.value=options.params.start;Ext.get('{1}').dom.value='';}}", EnableClientPagingStartRowIndexID, SelectedRowsHiddenFieldID), true);
            //    storeBuilder.AddProperty("listeners", listenersBuilder);
            //}

            // 每次都是加载全部
            //loadStoreScript = String.Format("{0}.load({1});", gridStoreId, "{params:{start:0,limit:" + (endRowIndex - startRowIndex + 1) + "}}");


            //// load store
            ////string loadStoreScript = String.Empty;
            //if (EnableClientPaging)
            //{
            //    loadStoreScript = String.Format("{0}.load({1});", gridStoreId, "{params:{start:" + EnableClientPagingStartRowIndex + ",limit:" + PageSize + "}}");
            //}
            //else
            //{
            //    loadStoreScript = String.Format("{0}.load({1});", gridStoreId, "{params:{start:0,limit:" + Rows.Count + "}}");
            //}

            //gridStoreScript += loadStoreScript; 
            #endregion
        }
コード例 #5
0
ファイル: Grid.cs プロジェクト: erpframework/FineUI
        //private string GetGroupColumnScript()
        //{
        //    if (Columns.Count > 0)
        //    {
        //        return String.Empty;
        //    }

        //    List<List<GridGroupColumn>> resolvedGroups = new List<List<GridGroupColumn>>();
        //    ResolveGroupColumns(GroupColumns, 0, resolvedGroups);

        //    JsArrayBuilder groupHeaderBuilder = new JsArrayBuilder();

        //    foreach (List<GridGroupColumn> groups in resolvedGroups)
        //    {
        //        JsArrayBuilder groupsBuilder = new JsArrayBuilder();
        //        foreach (GridGroupColumn group in groups)
        //        {
        //            JsObjectBuilder groupBuilder = new JsObjectBuilder();
        //            groupBuilder.AddProperty("header", group.HeaderText);
        //            if (group.TextAlign != TextAlign.Left)
        //            {
        //                groupBuilder.AddProperty("align", TextAlignName.GetName(group.TextAlign));
        //            }

        //            int groupColumnCount = 0;
        //            ResolveColumnCount(group, ref groupColumnCount);
        //            groupBuilder.AddProperty("colspan", groupColumnCount);

        //            groupsBuilder.AddProperty(groupBuilder);
        //        }

        //        groupHeaderBuilder.AddProperty(groupsBuilder);
        //    }

        //    return String.Format("var {0}=new Ext.ux.grid.ColumnHeaderGroup({{rows:{1}}});", Render_GridGroupColumnID, groupHeaderBuilder.ToString());

        //}

        //// 递归获得每个分组头中包含的列数
        //private void ResolveColumnCount(GridGroupColumn group, ref int columnCount)
        //{
        //    if (group.Columns.Count > 0)
        //    {
        //        columnCount += group.Columns.Count;
        //    }
        //    else if (group.GroupColumns.Count > 0)
        //    {
        //        foreach (GridGroupColumn subGroup in group.GroupColumns)
        //        {
        //            ResolveColumnCount(subGroup, ref columnCount);
        //        }
        //    }
        //}

        //// 将表头的树状分组转换为数组形式
        //private void ResolveGroupColumns(GridGroupColumnCollection groups, int level, List<List<GridGroupColumn>> resolvedGroups)
        //{
        //    foreach (GridGroupColumn group in groups)
        //    {
        //        if (resolvedGroups.Count <= level)
        //        {
        //            resolvedGroups.Add(new List<GridGroupColumn>());
        //        }
        //        resolvedGroups[level].Add(group);

        //        if (group.GroupColumns.Count > 0)
        //        {
        //            ResolveGroupColumns(group.GroupColumns, ++level, resolvedGroups);
        //            level--;
        //        }
        //    }
        //}

        #endregion

        #region GetGridSelectModel

        private string GetGridSelectModel()
        {
            //JsObjectBuilder selectOB = new JsObjectBuilder();
            OptionBuilder selectOB = new OptionBuilder();

            if (AllowCellEditing)
            {
                return String.Format("var {0}=Ext.create('Ext.selection.CellModel',{1});", Render_SelectModelID, selectOB);
            }
            else
            {
                //selectOB.AddProperty("singleSelect", !EnableMultiSelect);

                if (EnableMultiSelect)
                {
                    if (KeepCurrentSelection)
                    {
                        selectOB.AddProperty("mode", "SIMPLE");
                    }
                    else
                    {
                        selectOB.AddProperty("mode", "MULTI");
                    }
                }
                else
                {
                    selectOB.AddProperty("mode", "SINGLE");
                }


                if (EnableCheckBoxSelect && CheckBoxSelectOnly)
                {
                    selectOB.AddProperty("checkOnly", true);
                }

                //selectOB.AddProperty("listeners", "{beforerowselect:function(){return false;}}", true);

                if (EnableRowSelectEvent)
                {
                    string validateScript = "var args='RowSelect$'+record.getId();";
                    validateScript += GetPostBackEventReference("#RowSelect#").Replace("'#RowSelect#'", "args");

                    string rowSelectScript = JsHelper.GetFunction(validateScript, "model", "record", "index"); //String.Format("function(model,rowIndex){{{0}}}", validateScript);

                    selectOB.Listeners.AddProperty("select", rowSelectScript, true);
                }
                if (EnableRowDeselectEvent)
                {
                    string validateScript = "var args='RowDeselect$'+record.getId();";
                    validateScript += GetPostBackEventReference("#RowDeselect#").Replace("'#RowDeselect#'", "args");

                    string rowSelectScript = JsHelper.GetFunction(validateScript, "model", "record", "index"); //String.Format("function(model,rowIndex){{{0}}}", validateScript);

                    selectOB.Listeners.AddProperty("deselect", rowSelectScript, true);
                }

                if (EnableCheckBoxSelect)
                {
                    return String.Format("var {0}=Ext.create('Ext.selection.CheckboxModel',{1});", Render_SelectModelID, selectOB);
                }
                else
                {
                    return String.Format("var {0}=Ext.create('Ext.selection.RowModel',{1});", Render_SelectModelID, selectOB);
                }
            }
        }
コード例 #6
0
ファイル: Grid.cs プロジェクト: erpframework/FineUI
        private OptionBuilder GetPagingBuilder()
        {
            OptionBuilder pagingBuilder = new OptionBuilder();
            pagingBuilder.AddProperty("f_pageSize", PageSize);
            pagingBuilder.AddProperty("f_pageIndex", PageIndex);
            pagingBuilder.AddProperty("f_recordCount", RecordCount);
            pagingBuilder.AddProperty("f_pageCount", PageCount);

            int startRowIndex, endRowIndex;
            ResolveStartEndRowIndex(out startRowIndex, out endRowIndex);
            if (IsDatabasePaging)
            {
                pagingBuilder.AddProperty("f_databasePaging", true);
            }
            else
            {
                pagingBuilder.AddProperty("f_startRowIndex", startRowIndex);
                pagingBuilder.AddProperty("f_endRowIndex", endRowIndex);
            }

            return pagingBuilder;
        }
コード例 #7
0
ファイル: FileUpload.cs プロジェクト: proson/Fine-UI
        /// <summary>
        /// 渲染 HTML 之前调用(页面第一次加载或者普通回发)
        /// </summary>
        protected override void OnFirstPreRender()
        {
            base.OnFirstPreRender();

            AddStartupAbsoluteScript("F.form_upload_file=true;");

            if (!String.IsNullOrEmpty(ButtonText))
            {
                OB.AddProperty("buttonText", ButtonText);
            }

            if (ButtonOnly)
            {
                OB.AddProperty("buttonOnly", true);
            }

            string resolvedIconUrl = IconHelper.GetResolvedIconUrl(ButtonIcon, ButtonIconUrl);
            if (!String.IsNullOrEmpty(resolvedIconUrl))
            {
                OptionBuilder buttonOB = new OptionBuilder();
                buttonOB.AddProperty("cls", " x-btn-text-icon");
                buttonOB.AddProperty("icon", resolvedIconUrl);

                OB.AddProperty("buttonCfg", buttonOB);
            }

            //if (AutoPostBack)
            //{
            //    OB.Listeners.RemoveProperty("change");
            //    OB.Listeners.AddProperty("fileselected", JsHelper.GetFunction(GetPostBackEventReference()), true);
            //}

            string jsContent = String.Format("var {0}=Ext.create('Ext.form.field.File',{1});", XID, OB.ToString());
            AddStartupScript(jsContent);
        }
コード例 #8
0
ファイル: Container.cs プロジェクト: jinwmmail/RDFNew
        protected override void OnFirstPreRender()
        {
            base.OnFirstPreRender();

            if (Layout != Layout.Container)
            {
                OB.AddProperty("layout", LayoutHelper.GetName(Layout));

                if (Layout == Layout.Table)
                {
                    OptionBuilder layoutConfigOB = new OptionBuilder();
                    layoutConfigOB.AddProperty("columns", TableConfigColumns);

                    OB.AddProperty("layoutConfig", layoutConfigOB);
                }
                else if (Layout == Layout.HBox || Layout == Layout.VBox)
                {
                    OptionBuilder layoutConfigOB = new OptionBuilder();
                    if (BoxConfigAlign != BoxLayoutAlign.Top)
                    {
                        layoutConfigOB.AddProperty("align", BoxLayoutAlignHelper.GetName(BoxConfigAlign, Layout));
                    }

                    if (BoxConfigPosition != BoxLayoutPosition.Left)
                    {
                        layoutConfigOB.AddProperty("pack", BoxLayoutPositionHelper.GetName(BoxConfigPosition));
                    }

                    if (BoxConfigPadding != "0")
                    {
                        layoutConfigOB.AddProperty("padding", BoxConfigPadding);
                    }

                    if (BoxConfigChildMargin != "0")
                    {
                        layoutConfigOB.AddProperty("defaultMargins", BoxConfigChildMargin);
                    }

                    OB.AddProperty("layoutConfig", layoutConfigOB);
                }

            }
        }