/// <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); }
/// <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); }
/// <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); } } }
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 }
//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); } } }
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; }
/// <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); }
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); } } }