public WebControlTemplate(String Kind, TBlockFieldItem BlockFieldItem, String TableName, WebValidate InWebValidate, List<WebValidateBox> InWebValidateBoxList, List<System.Web.UI.WebControls.Label> InLabelList) { FFieldItem = BlockFieldItem; FTableName = TableName; aWebValidate = InWebValidate; FKind = Kind; aWebValidateBoxList = InWebValidateBoxList; FWebGridView = null; aLabelList = InLabelList; }
public WebControlTemplate(String Kind, TBlockFieldItem BlockFieldItem, String TableName, String DataSourceID, DbConnection GlobalConnection, List<AjaxTools.AjaxRefVal> InWebRefValList, ClientType aDatabaseType, WebGridView aGridView, List<System.Web.UI.WebControls.Label> InLabelList) { FFieldItem = BlockFieldItem; FTableName = TableName; FDataSourceID = DataSourceID; FConnection = GlobalConnection; aAjaxRefValList = InWebRefValList; FKind = Kind; FDatabaseType = aDatabaseType; FWebGridView = aGridView; aLabelList = InLabelList; }
public WebControlTemplate(String Kind, TBlockFieldItem BlockFieldItem, String TableName, String DataSourceID, List<MyWebDropDownList> InWebDropDownList, List<System.Web.UI.WebControls.Label> InLabelList) { FFieldItem = BlockFieldItem; FTableName = TableName; FDataSourceID = DataSourceID; FKind = Kind; aWebDropDownList = InWebDropDownList; FWebGridView = null; aLabelList = InLabelList; }
protected override void createButton(HtmlTextWriter writer, ControlItem ctrl, WebGridView gdView) { if (!this.FLActive && GloFix.IsFlowItem(ctrl.ControlName)) return; string command = "cmd" + ctrl.ControlName, text = ctrl.ControlText, imageUrl = ctrl.ImageUrl, mouseOverImageUrl = ctrl.MouseOverImageUrl, disenableImageUrl = ctrl.DisenableImageUrl; int size = ctrl.Size; bool IsVisible = IsControlVisible(ctrl); if (ctrl.ControlName == "Notify" && this.FLNotifyOff) IsVisible = false; bool IsEnable = this.DesignMode ? true : getUserSetEnabled(ctrl.ControlName, this.CurrentNavState); CtrlType ct = ctrl.ControlType; ClientScriptManager csm = Page.ClientScript; string tooltiptext = ""; if (!this.DesignMode) { tooltiptext = SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLTools", "FLWebNavigator", "ControlText", true); string[] arrtext = tooltiptext.Split(';'); switch (ctrl.ControlName) { case "First": text = arrtext[0]; tooltiptext = arrtext[0]; break; case "Previous": text = arrtext[1]; tooltiptext = arrtext[1]; break; case "Next": text = arrtext[2]; tooltiptext = arrtext[2]; break; case "Last": text = arrtext[3]; tooltiptext = arrtext[3]; break; case "Add": text = arrtext[4]; tooltiptext = arrtext[4]; break; case "Update": text = arrtext[5]; tooltiptext = arrtext[5]; break; case "Delete": text = arrtext[6]; tooltiptext = arrtext[6]; break; case "OK": text = arrtext[7]; tooltiptext = arrtext[7]; break; case "Cancel": text = arrtext[8]; tooltiptext = arrtext[8]; break; case "Apply": text = arrtext[9]; tooltiptext = arrtext[9]; break; case "Abort": text = arrtext[10]; tooltiptext = arrtext[10]; break; case "Query": text = arrtext[11]; tooltiptext = arrtext[11]; break; case "Print": text = arrtext[12]; tooltiptext = arrtext[12]; break; case "Export": text = arrtext[13]; tooltiptext = arrtext[13]; break; case "Submit": text = arrtext[14]; tooltiptext = arrtext[14]; break; case "Approve": text = arrtext[15]; tooltiptext = arrtext[15]; break; case "Return": text = arrtext[16]; tooltiptext = arrtext[16]; break; case "Reject": text = arrtext[17]; tooltiptext = arrtext[17]; break; case "Notify": text = arrtext[18]; tooltiptext = arrtext[18]; break; case "FlowDelete": text = arrtext[19]; tooltiptext = arrtext[19]; break; case "Plus": text = arrtext[20]; tooltiptext = arrtext[20]; break; case "Pause": text = arrtext[21]; tooltiptext = arrtext[21]; break; case "Comment": text = arrtext[22]; tooltiptext = arrtext[22]; break; default: tooltiptext = ctrl.ControlName; break; } } writer.RenderBeginTag(HtmlTextWriterTag.Td); #region Button if (ct == CtrlType.Button && IsVisible) { writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ClientID + command); if (!isFlowConditionReqired(ctrl.ControlName)) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('" + SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLClientControls", "FLNavigator", "FlowNotDefine") + "')"); } else if (!hasApplyOrAbort(ctrl.ControlName)) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('" + SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLClientControls", "FLNavigator", "ApplyFirst") + "')"); } else { if (ctrl.ControlName == "Add") { if (gdView != null && gdView.EditURL != null && gdView.EditURL != "" && !gdView.OpenEditUrlInServerMode) { string url = gdView.getURL(WebGridView.OpenEditMode.Insert, null); if (url != "") writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "window.open('" + url + "','','height=" + gdView.OpenEditHeight + ",width=" + gdView.OpenEditWidth + ",toolbar=no,scrollbars,resizable');return false;"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command)); } } else if (ctrl.ControlName == "Delete") { if (this.SureDelete) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "if(confirm('sure to delete?')){" + "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command) + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command)); } } else if (ctrl.ControlName == "Submit" || ctrl.ControlName == "Approve" || ctrl.ControlName == "Return" || ctrl.ControlName == "Notify" || ctrl.ControlName == "Plus" || ctrl.ControlName == "Comment" || (ctrl.ControlName == "Pause" && this.OrganizationControl)) { string script = GloScript(ctrl.ControlName); writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script); } else if (ctrl.ControlName == "Apply" || ctrl.ControlName == "Ok" || ctrl.ControlName == "Update") { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command)); //writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var start=new Date().getTime(); while(true) if(new Date().getTime()-start>5000) break; var aaa = document.getElementById('cmdApply');aaa.disabled=true;"); //writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command)); } } // render Button tag writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + size + "px; height:" + ((this.Height.Value <= 20) ? 25 : this.Height.Value) + "px; color:" + this.ForeColor.Name.Replace("ff", "#") + ";background-color:" + this.BackColor.Name.Replace("ff", "#") + ";"); writer.AddAttribute(HtmlTextWriterAttribute.Title, tooltiptext);// new add by ccm if (!IsEnable) { writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); } writer.RenderBeginTag(HtmlTextWriterTag.Button); writer.Write(text); writer.RenderEndTag(); } #endregion #region HyperLink else if (ct == CtrlType.HyperLink && IsVisible) { if (!isFlowConditionReqired(ctrl.ControlName)) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:alert('" + SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLClientControls", "FLNavigator", "FlowNotDefine") + "')"); } else if (!hasApplyOrAbort(ctrl.ControlName)) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:alert('" + SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLClientControls", "FLNavigator", "ApplyFirst") + "')"); } else { if (ctrl.ControlName == "Add") { if (gdView != null && gdView.EditURL != null && gdView.EditURL != "" && !gdView.OpenEditUrlInServerMode) { string url = gdView.getURL(WebGridView.OpenEditMode.Insert, null); if (url != "") writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:window.open('" + url + "','','height=" + gdView.OpenEditHeight + ",width=" + gdView.OpenEditWidth + ",toolbar=no,scrollbars,resizable');return false;"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + csm.GetPostBackClientHyperlink(this, command)); } } else if (ctrl.ControlName == "Delete") { if (this.SureDelete) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:if(confirm('sure to delete?')){" + csm.GetPostBackClientHyperlink(this, command) + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + csm.GetPostBackClientHyperlink(this, command)); } } else if (ctrl.ControlName == "Submit" || ctrl.ControlName == "Approve" || ctrl.ControlName == "Return" || ctrl.ControlName == "Notify" || ctrl.ControlName == "Plus" || ctrl.ControlName == "Comment" || (ctrl.ControlName == "Pause" && this.OrganizationControl)) { string script = GloScript(ctrl.ControlName); writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + script + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + csm.GetPostBackEventReference(this, command)); } } // render Link tag writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + size + "px; color:" + this.ForeColor.Name.Replace("ff", "#") + ";background-color:" + this.BackColor.Name.Replace("ff", "#") + ";"); writer.AddAttribute(HtmlTextWriterAttribute.Title, tooltiptext);// new add by ccm if (!IsEnable) { writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); } writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(text); writer.RenderEndTag(); } #endregion #region Image else if (ct == CtrlType.Image && imageUrl != null && imageUrl != "" && IsVisible) { if (!isFlowConditionReqired(ctrl.ControlName)) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('" + SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLClientControls", "FLNavigator", "FlowNotDefine") + "')"); } else if (!hasApplyOrAbort(ctrl.ControlName)) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('" + SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLClientControls", "FLNavigator", "ApplyFirst") + "')"); } else { if (ctrl.ControlName == "Add") { if (gdView != null && gdView.EditURL != null && gdView.EditURL != "" && !gdView.OpenEditUrlInServerMode) { string url = gdView.getURL(WebGridView.OpenEditMode.Insert, null); if (url != "") writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "window.open('" + url + "','','height=" + gdView.OpenEditHeight + ",width=" + gdView.OpenEditWidth + ",toolbar=no,scrollbars,resizable');return false;"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackClientHyperlink(this, command)); } } else if (ctrl.ControlName == "Delete") { if (this.SureDelete) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "if(confirm('sure to delete?')){" + csm.GetPostBackEventReference(this, command) + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } } else if (ctrl.ControlName == "Submit" || ctrl.ControlName == "Approve" || ctrl.ControlName == "Return" || ctrl.ControlName == "Notify" || ctrl.ControlName == "Plus" || ctrl.ControlName == "Comment" || (ctrl.ControlName == "Pause" && this.OrganizationControl)) { string script = GloScript(ctrl.ControlName); writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script); } else if (ctrl.ControlName == "Reject") { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "if(confirm('" + SysMsg.GetSystemMessage(CliUtils.fClientLang, "FLClientControls", "FLNavigator", "FlowRejectConfirm") + "')){" + csm.GetPostBackEventReference(this, command) + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } } // render Image tag writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + size + "px;"); if (!IsEnable) { if (disenableImageUrl != null && disenableImageUrl != "") writer.AddAttribute(HtmlTextWriterAttribute.Src, disenableImageUrl); else { writer.AddAttribute(HtmlTextWriterAttribute.Src, imageUrl); writer.AddAttribute("onmouseover", "this.src='" + mouseOverImageUrl + "'"); writer.AddAttribute("onmouseout", "this.src='" + imageUrl + "'"); } writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Src, imageUrl); writer.AddAttribute("onmouseover", "this.src='" + mouseOverImageUrl + "'"); writer.AddAttribute("onmouseout", "this.src='" + imageUrl + "'"); } writer.AddAttribute(HtmlTextWriterAttribute.Alt, tooltiptext);// new add by ccm writer.AddAttribute(HtmlTextWriterAttribute.Title, tooltiptext); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); } #endregion writer.RenderEndTag(); // </td> writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + this.ControlsGap + "px;"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); }
public WebControlTemplate(String Kind, TBlockFieldItem BlockFieldItem, String TableName, String DataSourceID, DbConnection GlobalConnection, List<WebRefVal> InWebRefValList, ClientType aDatabaseType, WebGridView aGridView) { FFieldItem = BlockFieldItem; FTableName = TableName; FDataSourceID = DataSourceID; FConnection = GlobalConnection; aWebRefValList = InWebRefValList; FKind = Kind; FDatabaseType = aDatabaseType; FWebGridView = aGridView; }
public override bool Initialize(bool sortingEnabled, Control control) { gridView = (WebGridView)control; return base.Initialize(sortingEnabled, control); }
public void Open(WebGridView.OpenEditMode mode) { Open(mode, null); }
private void WebNavigatorCommand(CommandEventArgs e) { object obj = GetObjByID(this.BindingObject); object vobj = GetObjByID(this.ViewBindingObject); bool ViewExist = false; WebGridView viewGridView = new WebGridView(); WebGridView gridView = new WebGridView(); WebDetailsView detailView = new WebDetailsView(); WebFormView formView = new WebFormView(); WebDataSource ds = new WebDataSource(); language = CliSysMegLag.GetClientLanguage(); if (this.ShowDataStyle == NavigatorStyle.GridStyle && obj is WebGridView) { gridView = (WebGridView)obj; if (gridView.AutoPostBackMultiCheckBoxes) { gridView.PostBackMultiCheckBoxes(); } if (gridView.AutoPostBackWebGridTextBoxes) { gridView.PostBackMultiTextBoxes(); } ds = (WebDataSource)GetObjByID(gridView.DataSourceID); WebValidate validate = (WebValidate)gridView.ExtendedFindChildControl(gridView.DataSourceID, FindControlType.DataSourceID, typeof(WebValidate)); WebNavigator bindingNav = gridView.GetBindingNavigator(); #region GridView Default Operation switch (e.CommandName) { case "cmdFirst": if (this.GridViewMoveMode == MoveMode.PageMode) { if (gridView.AllowPaging) gridView.PageIndex = 0; } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (gridView.AllowPaging) gridView.PageIndex = 0; gridView.SelectedIndex = 0; } break; case "cmdPrevious": if (this.GridViewMoveMode == MoveMode.PageMode) { if (gridView.AllowPaging && gridView.PageIndex > 0) gridView.PageIndex -= 1; } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (gridView.SelectedIndex == 0) { if (gridView.AllowPaging && gridView.PageIndex > 0) { gridView.PageIndex -= 1; gridView.SelectedIndex = gridView.PageSize - 1; } } else { gridView.SelectedIndex -= 1; } } break; case "cmdNext": if (this.GridViewMoveMode == MoveMode.PageMode) { if (gridView.AllowPaging && gridView.PageIndex != gridView.PageCount - 1) { gridView.PageIndex += 1; } if (gridView.PageIndex == gridView.PageCount - 1) { int j = gridView.PageIndex; Object c = (this.Page.Master == null) ? this.Page.FindControl(gridView.DataSourceID) : this.Parent.FindControl(gridView.DataSourceID); if (c != null) { WebDataSource webDs = ((WebDataSource)c); if (webDs.MasterDataSource == null || webDs.MasterDataSource.Length == 0) { DataTable table = new DataTable(); if (webDs.CommandTable != null) { table = webDs.CommandTable; } else if (webDs.InnerDataSet != null && webDs.InnerDataSet.Tables.Count != 0) { table = webDs.InnerDataSet.Tables[webDs.DataMember]; } int i = table.Rows.Count; while (i <= gridView.PageSize * (j + 1) && (!webDs.Eof)) { webDs.GetNextPacket(); i += webDs.PacketRecords; } } } } } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (gridView.AllowPaging) { if (gridView.PageIndex == gridView.PageCount - 1) { if (gridView.SelectedIndex != gridView.Rows.Count - 1) gridView.SelectedIndex += 1; } else { //不是最后一行 if (gridView.SelectedIndex != gridView.PageSize - 1) { gridView.SelectedIndex += 1; } //最后一行 else { gridView.PageIndex += 1; gridView.SelectedIndex = 0; if (gridView.PageIndex == gridView.PageCount - 1) { int j = gridView.PageIndex; Object c = (this.Page.Master == null) ? this.Page.FindControl(gridView.DataSourceID) : this.Parent.FindControl(gridView.DataSourceID); if (c != null) { WebDataSource webDs = ((WebDataSource)c); if (webDs.MasterDataSource == null || webDs.MasterDataSource.Length == 0) { DataTable table = new DataTable(); if (webDs.CommandTable != null) { table = webDs.CommandTable; } else if (webDs.InnerDataSet != null && webDs.InnerDataSet.Tables.Count != 0) { table = webDs.InnerDataSet.Tables[webDs.DataMember]; } int i = table.Rows.Count; while (i <= gridView.PageSize * (j + 1) && (!webDs.Eof)) { webDs.GetNextPacket(); i += webDs.PacketRecords; } } } } } } } } break; case "cmdLast": if (gridView.AllowPaging) { gridView.PageIndex = gridView.PageCount - 1; int j = gridView.PageIndex; Object c = (this.Page.Master == null) ? this.Page.FindControl(gridView.DataSourceID) : this.Parent.FindControl(gridView.DataSourceID); if (c != null) { WebDataSource webDs = ((WebDataSource)c); if (webDs.MasterDataSource == null || webDs.MasterDataSource.Length == 0) { DataTable table = new DataTable(); if (webDs.CommandTable != null) { table = webDs.CommandTable; } else if (webDs.InnerDataSet != null && webDs.InnerDataSet.Tables.Count != 0) { table = webDs.InnerDataSet.Tables[webDs.DataMember]; } int i = table.Rows.Count; bool b = false; while (i <= gridView.PageSize * (j + 1) && (!webDs.Eof)) { webDs.GetNextPacket(); i += webDs.PacketRecords; b = true; } if (this.GridViewMoveMode == MoveMode.RowMode) { if (!b && gridView.PageSize > 1) { gridView.SelectedIndex = (i % gridView.PageSize - 1 + gridView.PageSize) % gridView.PageSize; } else { gridView.SelectedIndex = gridView.PageSize - 1; } } } } } break; case "cmdAdd": if (ds.AllowAdd) { if (!CheckInsertedNotApply(gridView, 1)) { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "InsertedNotApply", true); ScriptHelper.ShowMessage(this, "InsertedNotApply", message); formView.NeedExecuteAdd = false; return; } formView.NeedExecuteAdd = true; if (gridView.EditURL != null && gridView.EditURL != "") { gridView.OpenEditURL(WebGridView.OpenEditMode.Insert); return; } else if (!string.IsNullOrEmpty(gridView.EditURLPanel)) { object obj_pan = this.GetObjByID(gridView.EditURLPanel); if (obj_pan != null && obj_pan is IModalPanel) { IModalPanel panel = obj_pan as IModalPanel; panel.Open(WebGridView.OpenEditMode.Insert, new GridViewCommandEventArgs(null, new CommandEventArgs("Insert", gridView.ID))); } return; } else { gridView.GridInserting = true; if (!gridView.TotalActive) gridView.ShowFooter = true; else gridView.DataBind(); gridView.OnAdding(new EventArgs()); } if (bindingNav != null && bindingNav != this) { bindingNav.SetState(NavigatorState.Inserting); bindingNav.SetNavState("Inserting"); } this.SetState(NavigatorState.Inserting); this.SetNavState("Inserting"); } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToAdd", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdOK": gridView.OnInserting(new EventArgs()); if (!gridView.SkipInsert) { doOkForGridInsert(gridView, ds); } gridView.SkipInsert = false; if (!gridView.ValidateFailed) FlowOK(); break; case "cmdCancel": if (validate != null) validate.Text = string.Empty; gridView.GridInserting = false; if (gridView.EditIndex != -1) gridView.EditIndex = -1; if (!gridView.TotalActive) gridView.ShowFooter = false; else gridView.DataBind(); if (bindingNav != null && bindingNav != this) { if (gridView.DataHasChanged) { bindingNav.SetState(NavigatorState.Changed); bindingNav.SetNavState("Changing"); } else { bindingNav.SetState(NavigatorState.Browsing); bindingNav.SetNavState("Browsed"); } } if (gridView.DataHasChanged) { this.SetState(NavigatorState.Changed); this.SetNavState("Changing"); } else { this.SetState(NavigatorState.Browsing); this.SetNavState("Browsed"); } FlowCancel(); gridView.OnCanceled(EventArgs.Empty); break; case "cmdApply": foreach (GridViewRow row in gridView.Rows) { if (row.RowType == DataControlRowType.DataRow) { if ((row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit) { gridView.UpdateRow(row.RowIndex, false); if ((row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit) return; } } } if (gridView.GridInserting) doOkForGridInsert(gridView, ds); bool bSucess = ds.ApplyUpdates(); if (bSucess && !gridView.ValidateFailed) { if (ds.AutoRecordLock) { ds.RemoveLock(); } if (bindingNav != null && bindingNav != this) { bindingNav.SetState(NavigatorState.ApplySucess); bindingNav.SetNavState("Browsed"); } this.SetState(NavigatorState.ApplySucess); this.SetNavState("Browsed"); FlowApply(); } else { this.SetState(NavigatorState.ApplyFail); if (gridView.EditIndex != -1) { this.SetNavState("Editing"); if (bindingNav != null && bindingNav != this) bindingNav.SetNavState("Editing"); } else { this.SetNavState("Inserting"); if (bindingNav != null && bindingNav != this) bindingNav.SetNavState("Inserting"); } } break; case "cmdAbort": if (validate != null) validate.Text = string.Empty; if (gridView.EditIndex != -1) gridView.EditIndex = -1; if (gridView.ShowFooter && !gridView.TotalActive) { gridView.ShowFooter = false; } ds.InnerDataSet.RejectChanges(); if (ds.AutoRecordLock) { ds.RemoveLock(); } this.SetState(NavigatorState.Aborted); this.SetNavState("Browsed"); gridView.DataBind(); FlowAbort(); gridView.OnCanceled(EventArgs.Empty); break; case "cmdQuery": DoQuery(ds); break; case "cmdPrint": if (ds.AllowPrint) { } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToPrint", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdExport": Export(); break; default: GridViewFlowCommand(e); break; } #endregion } else if (this.ShowDataStyle == NavigatorStyle.DetailStyle && obj is WebDetailsView) { detailView = (WebDetailsView)obj; if (vobj is WebGridView) { viewGridView = (WebGridView)vobj; ViewExist = true; } ds = (WebDataSource)GetObjByID(detailView.DataSourceID); WebValidate validate = (WebValidate)detailView.ExtendedFindChildControl(detailView.DataSourceID, FindControlType.DataSourceID, typeof(WebValidate)); WebNavigator bindingNav = detailView.GetBindingNavigator(); #region DetailsView Default Operation switch (e.CommandName) { case "cmdFirst": if (ViewExist) { if (this.GridViewMoveMode == MoveMode.PageMode) { if (viewGridView.AllowPaging) viewGridView.PageIndex = 0; } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (viewGridView.AllowPaging) viewGridView.PageIndex = 0; viewGridView.SelectedIndex = 0; } } else { if (detailView.AllowPaging) detailView.PageIndex = 0; } break; case "cmdPrevious": if (ViewExist) { if (this.GridViewMoveMode == MoveMode.PageMode) { if (viewGridView.AllowPaging && viewGridView.PageIndex > 0) viewGridView.PageIndex -= 1; } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (viewGridView.SelectedIndex == 0) { if (viewGridView.AllowPaging && viewGridView.PageIndex > 0) { viewGridView.PageIndex -= 1; viewGridView.SelectedIndex = viewGridView.PageSize - 1; } } else { viewGridView.SelectedIndex -= 1; } } } else { if (detailView.AllowPaging && detailView.PageIndex > 0) detailView.PageIndex -= 1; } break; case "cmdNext": if (ViewExist) { if (this.GridViewMoveMode == MoveMode.PageMode) { if (viewGridView.AllowPaging && viewGridView.PageIndex != viewGridView.PageCount - 1) { viewGridView.PageIndex += 1; } if (viewGridView.PageIndex == viewGridView.PageCount - 1) { Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) : this.Parent.FindControl(viewGridView.DataSourceID); if (c != null) { ((WebDataSource)c).GetNextPacket(); } } } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (viewGridView.AllowPaging) { if (viewGridView.PageIndex == viewGridView.PageCount - 1) { if (viewGridView.SelectedIndex != viewGridView.Rows.Count - 1) viewGridView.SelectedIndex += 1; } else { //不是最后一行 if (viewGridView.SelectedIndex != viewGridView.PageSize - 1) { viewGridView.SelectedIndex += 1; } //最后一行 else { viewGridView.PageIndex += 1; viewGridView.SelectedIndex = 0; if (viewGridView.PageIndex == viewGridView.PageCount - 1) { int j = viewGridView.PageIndex; Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) : this.Parent.FindControl(viewGridView.DataSourceID); if (c != null) { WebDataSource webDs = ((WebDataSource)c); if (webDs.MasterDataSource == null || webDs.MasterDataSource.Length == 0) { DataTable table = new DataTable(); if (webDs.CommandTable != null) { table = webDs.CommandTable; } else if (webDs.InnerDataSet != null && webDs.InnerDataSet.Tables.Count != 0) { table = webDs.InnerDataSet.Tables[webDs.DataMember]; } int i = table.Rows.Count; while (i <= viewGridView.PageSize * (j + 1) && (!webDs.Eof)) { webDs.GetNextPacket(); i += webDs.PacketRecords; } } } } } } } } } else { if (detailView.AllowPaging && detailView.PageIndex != detailView.PageCount - 1) { detailView.PageIndex += 1; if (detailView.PageIndex == detailView.PageCount - 1) { Object c = (this.Page.Master == null) ? this.Page.FindControl(detailView.DataSourceID) : this.Parent.FindControl(detailView.DataSourceID); if (c != null) { ((WebDataSource)c).GetNextPacket(); } } } } break; case "cmdLast": if (ViewExist) { //if (viewGridView.AllowPaging) //{ // viewGridView.PageIndex = viewGridView.PageCount - 1; // Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) // : this.Parent.FindControl(viewGridView.DataSourceID); // if (c != null) // { // ((WebDataSource)c).GetNextPacket(); // } //} if (viewGridView.AllowPaging) { viewGridView.PageIndex = viewGridView.PageCount - 1; int j = viewGridView.PageIndex; Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) : this.Parent.FindControl(viewGridView.DataSourceID); if (c != null) { WebDataSource webDs = ((WebDataSource)c); if (webDs.MasterDataSource == null || webDs.MasterDataSource.Length == 0) { DataTable table = new DataTable(); if (webDs.CommandTable != null) { table = webDs.CommandTable; } else if (webDs.InnerDataSet != null && webDs.InnerDataSet.Tables.Count != 0) { table = webDs.InnerDataSet.Tables[webDs.DataMember]; } int i = table.Rows.Count; bool b = false; while (i <= viewGridView.PageSize * (j + 1) && (!webDs.Eof)) { webDs.GetNextPacket(); i += webDs.PacketRecords; b = true; } if (this.GridViewMoveMode == MoveMode.RowMode) { if (!b && viewGridView.PageSize > 1) { viewGridView.SelectedIndex = (i % viewGridView.PageSize - 1 + viewGridView.PageSize) % viewGridView.PageSize; } else { viewGridView.SelectedIndex = viewGridView.PageSize - 1; } } } } } } else { if (detailView.AllowPaging) { detailView.PageIndex = detailView.PageCount - 1; Object c = (this.Page.Master == null) ? this.Page.FindControl(detailView.DataSourceID) : this.Parent.FindControl(detailView.DataSourceID); if (c != null) { ((WebDataSource)c).GetNextPacket(); } } } break; case "cmdAdd": if (ds.AllowAdd) { if (!CheckInsertedNotApply(detailView, 2)) { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "InsertedNotApply", true); ScriptHelper.ShowMessage(this, "InsertedNotApply", message); formView.NeedExecuteAdd = false; return; } formView.NeedExecuteAdd = true; if (validate != null) detailView.SetValidateFlag(validate); detailView.ChangeMode(DetailsViewMode.Insert); if (bindingNav != null && bindingNav != this) { bindingNav.SetState(NavigatorState.Inserting); bindingNav.SetNavState("Inserting"); } this.SetState(NavigatorState.Inserting); this.SetNavState("Inserting"); } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToAdd", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdUpdate": if (ds.AllowUpdate) { if (!CheckInsertedNotApply(detailView, 2)) { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "InsertedNotApply", true); ScriptHelper.ShowMessage(this, "InsertedNotApply", message); return; } formView.NeedExecuteAdd = true; if (!ds.IsEmpty) { if (validate != null) detailView.SetValidateFlag(validate); detailView.ChangeMode(DetailsViewMode.Edit); if (bindingNav != null && bindingNav != this) { bindingNav.SetState(NavigatorState.Editing); bindingNav.SetNavState("Editing"); } this.SetState(NavigatorState.Editing); this.SetNavState("Editing"); } } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToUpdate", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdDelete": if (ds.InnerDataSet.Tables[ds.DataMember].Rows.Count != 0) detailView.DeleteItem(); break; case "cmdOK": if (detailView.CurrentMode == DetailsViewMode.Insert) detailView.InsertItem(false); else if (detailView.CurrentMode == DetailsViewMode.Edit) detailView.UpdateItem(false); if (!detailView.ValidateFailed) FlowOK(); break; case "cmdCancel": if (detailView.CurrentMode == DetailsViewMode.Insert || detailView.CurrentMode == DetailsViewMode.Edit) { detailView.ChangeMode(DetailsViewMode.ReadOnly); if (validate != null) validate.Text = string.Empty; } if (validate != null) detailView.RemoveValidateFlag(validate); if (detailView.DataHasChanged) { this.SetState(NavigatorState.Changed); this.SetNavState("Changing"); } else { this.SetState(NavigatorState.Browsing); this.SetNavState("Browsed"); } this.SetNavState("Browsed"); FlowCancel(); detailView.OnCanceled(EventArgs.Empty); break; case "cmdApply": if (detailView.CurrentMode == DetailsViewMode.Insert) detailView.InsertItem(false); else if (detailView.CurrentMode == DetailsViewMode.Edit) detailView.UpdateItem(false); if (detailView.CurrentMode == DetailsViewMode.ReadOnly) { bool bSucess = ds.ApplyUpdates(); if (bSucess && !detailView.ValidateFailed) { if (ds.AutoRecordLock) { ds.RemoveLock(); } if (bindingNav != null && bindingNav != this) { bindingNav.SetState(NavigatorState.ApplySucess); bindingNav.SetNavState("Browsed"); } this.SetState(NavigatorState.ApplySucess); this.SetNavState("Browsed"); FlowApply(); } else { this.SetState(NavigatorState.ApplyFail); if (detailView.CurrentMode == DetailsViewMode.Edit) { if (bindingNav != null && bindingNav != this) { bindingNav.SetNavState("Editing"); } this.SetNavState("Editing"); } else if (detailView.CurrentMode == DetailsViewMode.Insert) { if (bindingNav != null && bindingNav != this) { bindingNav.SetNavState("Inserting"); } this.SetNavState("Inserting"); } } } break; case "cmdAbort": if (detailView.CurrentMode == DetailsViewMode.Insert || detailView.CurrentMode == DetailsViewMode.Edit) { detailView.ChangeMode(DetailsViewMode.ReadOnly); if (validate != null) validate.Text = string.Empty; } ds.InnerDataSet.RejectChanges(); if (ds.AutoRecordLock) { ds.RemoveLock(); } if (validate != null) detailView.RemoveValidateFlag(validate); if (bindingNav != null && bindingNav != this) { bindingNav.SetState(NavigatorState.Aborted); bindingNav.SetNavState("Browsed"); } this.SetState(NavigatorState.Aborted); this.SetNavState("Browsed"); detailView.DataBind(); FlowAbort(); detailView.OnCanceled(EventArgs.Empty); break; case "cmdQuery": if (ViewExist) { ds = this.GetObjByID(viewGridView.DataSourceID) as WebDataSource; } DoQuery(ds); break; case "cmdPrint": if (ViewExist) { if (ds.AllowPrint) { } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToPrint", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } } else { if (ds.AllowPrint) { } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToPrint", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } } break; case "cmdExport": Export(); break; default: DetailsViewFlowCommand(e); break; } #endregion } else if (this.ShowDataStyle == NavigatorStyle.FormViewStyle && obj is WebFormView) { formView = (WebFormView)obj; ds = (WebDataSource)GetObjByID(formView.DataSourceID); WebValidate validate = (WebValidate)formView.ExtendedFindChildControl(formView.DataSourceID, FindControlType.DataSourceID, typeof(WebValidate)); if (vobj is WebGridView) { viewGridView = (WebGridView)vobj; ViewExist = true; } #region WebFormView Default Operation switch (e.CommandName) { case "cmdFirst": if (ViewExist) { //if (viewGridView.AllowPaging) // viewGridView.PageIndex = 0; if (this.GridViewMoveMode == MoveMode.PageMode) { if (viewGridView.AllowPaging) viewGridView.PageIndex = 0; } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (viewGridView.AllowPaging) viewGridView.PageIndex = 0; viewGridView.SelectedIndex = 0; } } else { if (formView.AllowPaging) formView.PageIndex = 0; } break; case "cmdPrevious": if (ViewExist) { //if (viewGridView.AllowPaging && viewGridView.PageIndex > 0) // viewGridView.PageIndex -= 1; if (this.GridViewMoveMode == MoveMode.PageMode) { if (viewGridView.AllowPaging && viewGridView.PageIndex > 0) viewGridView.PageIndex -= 1; } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (viewGridView.SelectedIndex == 0) { if (viewGridView.AllowPaging && viewGridView.PageIndex > 0) { viewGridView.PageIndex -= 1; viewGridView.SelectedIndex = viewGridView.PageSize - 1; } } else { viewGridView.SelectedIndex -= 1; } } } else { if (formView.AllowPaging && formView.PageIndex > 0) formView.PageIndex -= 1; } break; case "cmdNext": if (ViewExist) { if (this.GridViewMoveMode == MoveMode.PageMode) { if (viewGridView.AllowPaging && viewGridView.PageIndex != viewGridView.PageCount - 1) { viewGridView.PageIndex += 1; } if (viewGridView.PageIndex == viewGridView.PageCount - 1) { Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) : this.Parent.FindControl(viewGridView.DataSourceID); if (c != null) { ((WebDataSource)c).GetNextPacket(); } } } else if (this.GridViewMoveMode == MoveMode.RowMode) { if (viewGridView.AllowPaging) { if (viewGridView.PageIndex == viewGridView.PageCount - 1) { if (viewGridView.SelectedIndex != viewGridView.Rows.Count - 1) viewGridView.SelectedIndex += 1; } else { //不是最后一行 if (viewGridView.SelectedIndex != viewGridView.PageSize - 1) { viewGridView.SelectedIndex += 1; } //最后一行 else { viewGridView.PageIndex += 1; viewGridView.SelectedIndex = 0; if (viewGridView.PageIndex == viewGridView.PageCount - 1) { int j = viewGridView.PageIndex; Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) : this.Parent.FindControl(viewGridView.DataSourceID); if (c != null) { WebDataSource webDs = ((WebDataSource)c); if (webDs.MasterDataSource == null || webDs.MasterDataSource.Length == 0) { DataTable table = new DataTable(); if (webDs.CommandTable != null) { table = webDs.CommandTable; } else if (webDs.InnerDataSet != null && webDs.InnerDataSet.Tables.Count != 0) { table = webDs.InnerDataSet.Tables[webDs.DataMember]; } int i = table.Rows.Count; while (i <= viewGridView.PageSize * (j + 1) && (!webDs.Eof)) { webDs.GetNextPacket(); i += webDs.PacketRecords; } } } } } } } } } else { if (formView.AllowPaging && formView.PageIndex != formView.PageCount - 1) { formView.PageIndex += 1; if (formView.PageIndex == formView.PageCount - 1) { Object c = (this.Page.Master == null) ? this.Page.FindControl(formView.DataSourceID) : this.Parent.FindControl(formView.DataSourceID); if (c != null) { ((WebDataSource)c).GetNextPacket(); } } } } break; case "cmdLast": if (ViewExist) { //if (viewGridView.AllowPaging) //{ // viewGridView.PageIndex = viewGridView.PageCount - 1; // Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) // : this.Parent.FindControl(viewGridView.DataSourceID); // if (c != null) // { // ((WebDataSource)c).GetNextPacket(); // } //} if (viewGridView.AllowPaging) { viewGridView.PageIndex = viewGridView.PageCount - 1; int j = viewGridView.PageIndex; Object c = (this.Page.Master == null) ? this.Page.FindControl(viewGridView.DataSourceID) : this.Parent.FindControl(viewGridView.DataSourceID); if (c != null) { WebDataSource webDs = ((WebDataSource)c); if (webDs.MasterDataSource == null || webDs.MasterDataSource.Length == 0) { DataTable table = new DataTable(); if (webDs.CommandTable != null) { table = webDs.CommandTable; } else if (webDs.InnerDataSet != null && webDs.InnerDataSet.Tables.Count != 0) { table = webDs.InnerDataSet.Tables[webDs.DataMember]; } int i = table.Rows.Count; bool b = false; while (i <= viewGridView.PageSize * (j + 1) && (!webDs.Eof)) { webDs.GetNextPacket(); i += webDs.PacketRecords; b = true; } if (this.GridViewMoveMode == MoveMode.RowMode) { if (!b && viewGridView.PageSize > 1) { viewGridView.SelectedIndex = (i % viewGridView.PageSize - 1 + viewGridView.PageSize) % viewGridView.PageSize; } else { viewGridView.SelectedIndex = viewGridView.PageSize - 1; } } } } } } else { if (formView.AllowPaging) { formView.PageIndex = formView.PageCount - 1; Object c = (this.Page.Master == null) ? this.Page.FindControl(formView.DataSourceID) : this.Parent.FindControl(formView.DataSourceID); if (c != null) { ((WebDataSource)c).GetNextPacket(); } } } break; case "cmdAdd": if (ds.AllowAdd) { if (!CheckInsertedNotApply(formView, 3)) { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "InsertedNotApply", true); ScriptHelper.ShowMessage(this, "InsertedNotApply", message); formView.NeedExecuteAdd = false; return; } formView.NeedExecuteAdd = true; formView.ChangeMode(FormViewMode.Insert); formView.OnAdding(EventArgs.Empty); this.SetState(NavigatorState.Inserting); this.SetNavState("Inserting"); } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToAdd", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdUpdate": if (ds.AllowUpdate) { if (!CheckInsertedNotApply(formView, 3)) { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "InsertedNotApply", true); ScriptHelper.ShowMessage(this, "InsertedNotApply", message); return; } formView.NeedExecuteAdd = true; if (!ds.IsEmpty) { formView.ChangeMode(FormViewMode.Edit); this.SetState(NavigatorState.Editing); this.SetNavState("Editing"); } } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToUpdate", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdDelete": if (ds.AllowDelete) formView.DeleteItem(); else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToDelete", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdOK": if (formView.CurrentMode == FormViewMode.Insert) formView.InsertItem(false); else if (formView.CurrentMode == FormViewMode.Edit) formView.UpdateItem(false); if (!formView.ValidateFailed) FlowOK(); break; case "cmdCancel": if (formView.CurrentMode == FormViewMode.Insert || formView.CurrentMode == FormViewMode.Edit) { formView.ChangeMode(formView.DefaultMode); if (validate != null) validate.Text = string.Empty; if (formView.DataHasChanged) { this.SetState(NavigatorState.Changed); this.SetNavState("Changing"); } else { this.SetState(NavigatorState.Browsing); this.SetNavState("Browsed"); } FlowCancel(); formView.OnCanceled(EventArgs.Empty); } break; case "cmdApply": if (formView.CurrentMode == FormViewMode.Insert) formView.InsertItem(false); else if (formView.CurrentMode == FormViewMode.Edit) formView.UpdateItem(false); if (formView.CurrentMode == FormViewMode.ReadOnly) //防止formview updating event 调用 e.cancel == true; navigator state会变 { bool bSucess = ds.ApplyUpdates(); if (bSucess && !formView.ValidateFailed) { if (ds.AutoRecordLock) { ds.RemoveLock(); } this.SetState(NavigatorState.ApplySucess); this.SetNavState("Browsed"); FlowApply(); } else { this.SetState(NavigatorState.ApplyFail); if (formView.CurrentMode == FormViewMode.Edit) this.SetNavState("Editing"); else if (formView.CurrentMode == FormViewMode.Insert) this.SetNavState("Inserting"); } } break; case "cmdAbort": ds.InnerDataSet.RejectChanges(); formView.DataBind(); if (formView.CurrentMode == FormViewMode.Insert || formView.CurrentMode == FormViewMode.Edit) { formView.ChangeMode(formView.DefaultMode); if (validate != null) validate.Text = string.Empty; } if (ds.AutoRecordLock) { ds.RemoveLock(); } this.SetState(NavigatorState.Aborted); this.SetNavState("Browsed"); FlowAbort(); formView.OnCanceled(EventArgs.Empty); break; case "cmdQuery": if (ViewExist) { ds = this.GetObjByID(viewGridView.DataSourceID) as WebDataSource; } DoQuery(ds); break; case "cmdPrint": if (ViewExist) { if (ds.AllowPrint) { } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToPrint", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } } else { if (ds.AllowPrint) { } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToPrint", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } } break; case "cmdExport": Export(); break; default: FormViewFlowCommand(e); break; } #endregion } else if (this.ShowDataStyle == NavigatorStyle.ASPxGridView && obj.GetType().Name == "ASPxGridView") { var aspxGridView = obj.GetType(); object objPageIndex = obj.GetType().GetProperty("PageIndex").GetValue(obj, null); int pageIndex = int.Parse(objPageIndex.ToString()); object objPageCount = obj.GetType().GetProperty("PageCount").GetValue(obj, null); int pageCount = int.Parse(objPageCount.ToString()); String strDataSourceID = obj.GetType().GetProperty("DataSourceID").GetValue(obj, null).ToString(); ds = (WebDataSource)GetObjByID(strDataSourceID); //WebValidate validate = (WebValidate)gridView.ExtendedFindChildControl(gridView.DataSourceID, FindControlType.DataSourceID, typeof(WebValidate)); #region ASPxGridView Default Operation switch (e.CommandName) { case "cmdFirst": obj.GetType().GetProperty("PageIndex").SetValue(obj, 0, null); break; case "cmdPrevious": if (objPageIndex != null) { obj.GetType().GetProperty("PageIndex").SetValue(obj, pageIndex - 1, null); } break; case "cmdNext": if (objPageIndex != null) { if (pageIndex == pageCount - 1) { ((WebDataSource)ds).GetNextPacket(); } obj.GetType().GetProperty("PageIndex").SetValue(obj, pageIndex + 1, null); } break; case "cmdLast": bool b = false; while (!ds.Eof) { ds.GetNextPacket(); b = true; } DataBind(); obj.GetType().GetProperty("PageIndex").SetValue(obj, pageCount - 1, null); break; case "cmdAdd": if (ds.AllowAdd) { //AddNewRow obj.GetType().GetMethod("AddNewRow").Invoke(obj, null); this.SetState(NavigatorState.Inserting); this.SetNavState("Inserting"); } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToAdd", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdUpdate": if (ds.AllowUpdate) { if (!ds.IsEmpty) { this.SetState(NavigatorState.Editing); this.SetNavState("Editing"); } } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToUpdate", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdDelete": if (ds.AllowDelete) ; else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToDelete", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } break; case "cmdOK": case "cmdApply": obj.GetType().GetMethod("UpdateEdit").Invoke(obj, null); this.SetState(NavigatorState.Changed); this.SetNavState("Changing"); break; case "cmdCancel": case "cmdAbort": obj.GetType().GetMethod("CancelEdit").Invoke(obj, null); //if (formView.DataHasChanged) //{ // this.SetState(NavigatorState.Changed); // this.SetNavState("Changing"); //} //else { this.SetState(NavigatorState.Browsing); this.SetNavState("Browsed"); } break; //case "cmdApply": // if (formView.CurrentMode == FormViewMode.Insert) // formView.InsertItem(false); // else if (formView.CurrentMode == FormViewMode.Edit) // formView.UpdateItem(false); // if (formView.CurrentMode == FormViewMode.ReadOnly) //防止formview updating event 调用 e.cancel == true; navigator state会变 // { // bool bSucess = ds.ApplyUpdates(); // if (bSucess && !formView.ValidateFailed) // { // if (ds.AutoRecordLock) // { // ds.RemoveLock(); // } // this.SetState(NavigatorState.ApplySucess); // this.SetNavState("Browsed"); // FlowApply(); // } // else // { // this.SetState(NavigatorState.ApplyFail); // if (formView.CurrentMode == FormViewMode.Edit) // this.SetNavState("Editing"); // else if (formView.CurrentMode == FormViewMode.Insert) // this.SetNavState("Inserting"); // } // } // break; //case "cmdAbort": // ds.InnerDataSet.RejectChanges(); // formView.DataBind(); // if (formView.CurrentMode == FormViewMode.Insert || formView.CurrentMode == FormViewMode.Edit) // { // formView.ChangeMode(formView.DefaultMode); // } // if (ds.AutoRecordLock) // { // ds.RemoveLock(); // } // this.SetState(NavigatorState.Aborted); // this.SetNavState("Browsed"); // FlowAbort(); // formView.OnCanceled(EventArgs.Empty); // break; case "cmdQuery": if (ViewExist) { ds = this.GetObjByID(viewGridView.DataSourceID) as WebDataSource; } DoQuery(ds); break; case "cmdPrint": if (ViewExist) { if (ds.AllowPrint) { } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToPrint", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } } else { if (ds.AllowPrint) { } else { language = CliUtils.fClientLang; String message = SysMsg.GetSystemMessage(language, "Srvtools", "WebDataSource", "rightToPrint", true); CliUtils.RegisterStartupScript(this, "alert('" + message + "')"); } } break; case "cmdExport": Export(); break; default: FormViewFlowCommand(e); break; } #endregion } }
private string GetRemoteName(WebGridView gridView) { string remoteName = ""; XmlDocument xmlDoc = new XmlDocument(); string aspxName = EditionDifference.ActiveDocumentFullName(); string resourceName = aspxName + @".vi-VN.resx"; ResXResourceReader reader = new ResXResourceReader(resourceName); IDictionaryEnumerator enumerator = reader.GetEnumerator(); WebDataSource obj = (WebDataSource)gridView.GetObjByID(gridView.DataSourceID); string key = string.Empty; if (!string.IsNullOrEmpty(obj.WebDataSetID)) { key = "WebDataSets"; } #if VS90 if (!string.IsNullOrEmpty(obj.LinqDataSetID)) { key = "LinqDataSets"; } #endif while (enumerator.MoveNext()) { if (enumerator.Key.ToString() == key) { string sXml = (string)enumerator.Value; xmlDoc.LoadXml(sXml); break; } } if (xmlDoc != null) { XmlNode nDataSets = null; XmlNode nDataSet = null; string dataSetID = string.Empty; if (!string.IsNullOrEmpty(obj.WebDataSetID)) { nDataSets = xmlDoc.SelectSingleNode("WebDataSets"); if (nDataSets == null) return string.Empty; dataSetID = obj.WebDataSetID; nDataSet = nDataSets.SelectSingleNode("WebDataSet[@Name='" + dataSetID + "']"); } #if VS90 else if (!string.IsNullOrEmpty(obj.LinqDataSetID)) { nDataSets = xmlDoc.SelectSingleNode("LinqDataSets"); if (nDataSets == null) return string.Empty; dataSetID = obj.LinqDataSetID; nDataSet = nDataSets.SelectSingleNode("LinqDataSet[@Name='" + dataSetID + "']"); } #endif if (nDataSet != null) { XmlNode nRemoteName = nDataSet.SelectSingleNode("RemoteName"); if (nRemoteName != null) remoteName = nRemoteName.InnerText; } } return remoteName; }
private void doOkForGridInsert(WebGridView gridView, WebDataSource ds) { Hashtable ht = new Hashtable(); for (int i = 0; i < gridView.Columns.Count; i++) { string fieldName; if (gridView.Columns[i] is BoundField) { fieldName = ((BoundField)gridView.Columns[i]).DataField; if (!((BoundField)gridView.Columns[i]).ReadOnly) { TextBox txt = (TextBox)gridView.FooterRow.FindControl("InfoTextBox" + fieldName); if (txt != null) { if (txt.Text == "") { ht.Add(fieldName, DBNull.Value); } else { ht.Add(fieldName, txt.Text); } } } else { Label lbl = (Label)gridView.FooterRow.FindControl("InfoLabel" + fieldName); if (lbl != null) { if (lbl.Text == "") { ht.Add(fieldName, DBNull.Value); } else { ht.Add(fieldName, lbl.Text); } } } } else if (gridView.Columns[i] is TemplateField) { fieldName = gridView.Columns[i].SortExpression; object strValue = GetValue(fieldName, gridView); if (strValue == null || strValue.ToString() == "") //modified by lily 2007/4/12 如果多个Templatefield,且没有设定SortExpression,会报错。 { if (fieldName != null && fieldName != "") ht.Add(fieldName, DBNull.Value); } else ht.Add(fieldName, strValue); } } WebValidate validate = (WebValidate)gridView.ExtendedFindChildControl(gridView.DataSourceID, FindControlType.DataSourceID, typeof(WebValidate)); if (validate != null) { validate.Text = string.Empty; if (ds.PrimaryKey.Length > 0) { object[] value = new object[ds.PrimaryKey.Length]; for (int i = 0; i < ds.PrimaryKey.Length; i++) { string columnName = ds.PrimaryKey[i].ColumnName; if (ht.ContainsKey(columnName)) { value[i] = ht[columnName]; } else if (ds.RelationValues != null && ds.RelationValues.Contains(columnName)) { value[i] = ds.RelationValues[columnName]; } else { throw new EEPException(EEPException.ExceptionType.ColumnValueNotFound, ds.GetType(), ds.ID, columnName, null); } } if (!validate.CheckDuplicate(ds, value)) { gridView.ValidateFailed = true; return; } } bool validateSucess = validate.CheckValidate(ht); if (validateSucess) { gridView.ValidateFailed = false; ds.Insert(ht); gridView.GridInserting = false; gridView.OnAfterInsert(EventArgs.Empty); if (!gridView.TotalActive) gridView.ShowFooter = false; else gridView.DataBind(); } else { gridView.ValidateFailed = true; gridView.ValidateFormat(); } if (gridView.ValidateFailed) return; } else { ds.Insert(ht); gridView.GridInserting = false; gridView.OnAfterInsert(EventArgs.Empty); if (!gridView.TotalActive) gridView.ShowFooter = false; else gridView.DataBind(); } WebNavigator bindingNav = gridView.GetBindingNavigator(); if (bindingNav != null && bindingNav != this) { if (ds.AutoApply) { bindingNav.SetState(WebNavigator.NavigatorState.ApplySucess); bindingNav.SetNavState("Browsed"); } else { bindingNav.SetState(WebNavigator.NavigatorState.Changed); bindingNav.SetNavState("Changing"); } } if (ds.AutoApply) { this.SetState(WebNavigator.NavigatorState.ApplySucess); this.SetNavState("Browsed"); } else { this.SetState(WebNavigator.NavigatorState.Changed); this.SetNavState("Changing"); } }
private object GetValue(string fieldName, WebGridView gridView) { object strValue = null; Control ctrl = new Control(); bool HasFoundControl = false; foreach (AddNewRowControlItem ai in gridView.AddNewRowControls) { if (ai.FieldName == fieldName) { ctrl = gridView.FooterRow.FindControl(ai.ControlID); switch (ai.ControlType) { case WebGridView.AddNewRowControlType.TextBox: strValue = ((TextBox)ctrl).Text; HasFoundControl = true; break; case WebGridView.AddNewRowControlType.HtmlInputText: strValue = ((HtmlInputText)ctrl).Value; HasFoundControl = true; break; case WebGridView.AddNewRowControlType.Label: strValue = ((Label)ctrl).Text; HasFoundControl = true; break; case WebGridView.AddNewRowControlType.DropDownList: strValue = ((DropDownList)ctrl).SelectedValue; HasFoundControl = true; break; case WebGridView.AddNewRowControlType.CheckBox: strValue = ((CheckBox)ctrl).Checked; HasFoundControl = true; break; case WebGridView.AddNewRowControlType.RefVal: strValue = ((WebRefValBase)ctrl).BindingValue; HasFoundControl = true; break; case WebGridView.AddNewRowControlType.DateTimePicker: IDateTimePicker dtp = (IDateTimePicker)ctrl; if (dtp.DateTimeType == dateTimeType.VarChar) { strValue = dtp.DateString; } else { strValue = dtp.Text; } HasFoundControl = true; break; case WebGridView.AddNewRowControlType.WebImage: { if ((ctrl as WebImage).ImageStyle == WebImage.WebImageStyle.ImageField) { strValue = ((WebImage)ctrl).FileBytes; } else { strValue = ((WebImage)ctrl).ImageUrl; } HasFoundControl = true; break; } case WebGridView.AddNewRowControlType.WebListBoxList: { strValue = ((WebListBoxList)ctrl).Text; HasFoundControl = true; break; } case WebGridView.AddNewRowControlType.WebCheckBox: { strValue = ((WebCheckBox)ctrl).CheckBinding; HasFoundControl = true; break; } case WebGridView.AddNewRowControlType.HiddenField: { strValue = ((HiddenField)ctrl).Value; HasFoundControl = true; break; } } } } if (!HasFoundControl) { TextBox txt = (TextBox)gridView.FooterRow.FindControl("InfoTextBox" + fieldName.ToLower()); if (txt != null) { strValue = txt.Text; } } return strValue; }
protected virtual void createButton(HtmlTextWriter writer, ControlItem ctrl, WebGridView gdView) { string command = "cmd" + ctrl.ControlName, text = ctrl.ControlText, imageUrl = ctrl.ImageUrl, mouseOverImageUrl = ctrl.MouseOverImageUrl, disenableImageUrl = ctrl.DisenableImageUrl; int size = ctrl.Size; bool IsVisible = ctrl.ControlVisible; bool IsEnable = this.DesignMode ? true : getUserSetEnabled(ctrl.ControlName, this.CurrentNavState); CtrlType ct = ctrl.ControlType; ClientScriptManager csm = Page.ClientScript; string tooltiptext = this.AddDefaultControls ? SysMsg.GetSystemMessage(CliUtils.fClientLang, "Srvtools", "WebNavigator", "ControlText", true) : SysMsg.GetSystemMessage(CliUtils.fClientLang, "Srvtools", "WebGridView", "ControlText", true); String sureDelete = SysMsg.GetSystemMessage(CliUtils.fClientLang, "Srvtools", "WebNavigator", "sureDeleteText", true); string[] arrtext = tooltiptext.Split(';'); if (arrtext.Length == 6) { switch (ctrl.ControlName) { case "Add": if (this.GetServerText) { text = arrtext[0]; tooltiptext = arrtext[0]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Query": if (this.GetServerText) { text = arrtext[1]; tooltiptext = arrtext[1]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Apply": if (this.GetServerText) { text = arrtext[2]; tooltiptext = arrtext[2]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Abort": if (this.GetServerText) { text = arrtext[3]; tooltiptext = arrtext[3]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "OK": if (this.GetServerText) { text = arrtext[4]; tooltiptext = arrtext[4]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Cancel": if (this.GetServerText) { text = arrtext[5]; tooltiptext = arrtext[5]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; } } else if (arrtext.Length >= 14) { switch (ctrl.ControlName) { case "First": if (this.GetServerText) { text = arrtext[0]; tooltiptext = arrtext[0]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Previous": if (this.GetServerText) { text = arrtext[1]; tooltiptext = arrtext[1]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Next": if (this.GetServerText) { text = arrtext[2]; tooltiptext = arrtext[2]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Last": if (this.GetServerText) { text = arrtext[3]; tooltiptext = arrtext[3]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Add": if (this.GetServerText) { text = arrtext[4]; tooltiptext = arrtext[4]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Update": if (this.GetServerText) { text = arrtext[5]; tooltiptext = arrtext[5]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Delete": if (this.GetServerText) { text = arrtext[6]; tooltiptext = arrtext[6]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "OK": if (this.GetServerText) { text = arrtext[7]; tooltiptext = arrtext[7]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Cancel": if (this.GetServerText) { text = arrtext[8]; tooltiptext = arrtext[8]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Apply": if (this.GetServerText) { text = arrtext[9]; tooltiptext = arrtext[9]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Abort": if (this.GetServerText) { text = arrtext[10]; tooltiptext = arrtext[10]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Query": if (this.GetServerText) { text = arrtext[11]; tooltiptext = arrtext[11]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Print": if (this.GetServerText) { text = arrtext[12]; tooltiptext = arrtext[12]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; case "Export": if (this.GetServerText) { text = arrtext[13]; tooltiptext = arrtext[13]; } else { text = ctrl.ControlText; tooltiptext = ctrl.ControlName; } break; default: text = ctrl.ControlText; tooltiptext = ctrl.ControlName; break; } } writer.RenderBeginTag(HtmlTextWriterTag.Td); if (ct == CtrlType.Button && IsVisible) { writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ClientID + command); if (!IsEnable) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "return false;"); } else { if (ctrl.ControlName == "Add") { if (gdView != null && gdView.EditURL != null && gdView.EditURL != "" && !gdView.OpenEditUrlInServerMode) { string url = gdView.getURL(WebGridView.OpenEditMode.Insert, null); if (url != "") writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "window.open('" + url + "','','height=" + gdView.OpenEditHeight + ",width=" + gdView.OpenEditWidth + ",scrollbars=yes,resizable=yes,toolbar=no,menubar=no,location=no,status=no');return false;"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command)); //writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } } else if (ctrl.ControlName == "Delete") { if (this.SureDelete) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "if(confirm('" + sureDelete + "')){" + "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command) + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command)); } } else if (ctrl.ControlName == "Apply" || ctrl.ControlName.ToLower() == "ok" || ctrl.ControlName == "Update") { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var button = document.getElementById('" + this.ClientID + command + "');button.disabled=true;" + csm.GetPostBackEventReference(this, command)); //writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "var start=new Date().getTime(); while(true) if(new Date().getTime()-start>5000) break; var aaa = document.getElementById('cmdApply');aaa.disabled=true;"); //writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } // render Button tag writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + size + "px; height:" + ((this.Height.Value <= 20) ? 25 : this.Height.Value) + "px; color:" + this.ForeColor.Name.Replace("ff", "#") + ";background-color:" + this.BackColor.Name.Replace("ff", "#") + ";"); writer.AddAttribute(HtmlTextWriterAttribute.Title, tooltiptext);// new add by ccm if (!IsEnable) { writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); } writer.RenderBeginTag(HtmlTextWriterTag.Button); writer.Write(text); writer.RenderEndTag(); } } else if (ct == CtrlType.HyperLink && IsVisible) { if (ctrl.ControlName == "Add") { if (gdView != null && gdView.EditURL != null && gdView.EditURL != "" && !gdView.OpenEditUrlInServerMode) { string url = gdView.getURL(WebGridView.OpenEditMode.Insert, null); if (url != "") writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:window.open('" + url + "','','height=" + gdView.OpenEditHeight + ",width=" + gdView.OpenEditWidth + ",scrollbars=yes,resizable=yes,toolbar=no,menubar=no,location=no,status=no');return false;"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + csm.GetPostBackClientHyperlink(this, command)); } } else if (ctrl.ControlName == "Delete") { if (this.SureDelete) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:if(confirm('" + sureDelete + "')){" + csm.GetPostBackClientHyperlink(this, command) + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + csm.GetPostBackClientHyperlink(this, command)); } } else { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + csm.GetPostBackEventReference(this, command)); } // render Link tag writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + size + "px; color:" + this.ForeColor.Name.Replace("ff", "#") + ";background-color:" + this.BackColor.Name.Replace("ff", "#") + ";"); writer.AddAttribute(HtmlTextWriterAttribute.Title, tooltiptext);// new add by ccm if (!IsEnable) { writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); } writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(text); writer.RenderEndTag(); } else if (ct == CtrlType.Image && imageUrl != null && imageUrl != "" && IsVisible) { if (ctrl.ControlName == "Add") { if (gdView != null && gdView.EditURL != null && gdView.EditURL != "" && !gdView.OpenEditUrlInServerMode) { string url = gdView.getURL(WebGridView.OpenEditMode.Insert, null); if (url != "") writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "window.open('" + url + "','','height=" + gdView.OpenEditHeight + ",width=" + gdView.OpenEditWidth + ",scrollbars=yes,resizable=yes,toolbar=no,menubar=no,location=no,status=no');return false;"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackClientHyperlink(this, command)); } } else if (ctrl.ControlName == "Delete") { if (this.SureDelete) { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "if(confirm('" + sureDelete + "')){" + csm.GetPostBackEventReference(this, command) + "}"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } } else { writer.AddAttribute(HtmlTextWriterAttribute.Onclick, csm.GetPostBackEventReference(this, command)); } // render Image tag writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + size + "px;"); if (!IsEnable) { if (disenableImageUrl != null && disenableImageUrl != "") writer.AddAttribute(HtmlTextWriterAttribute.Src, disenableImageUrl); else { writer.AddAttribute(HtmlTextWriterAttribute.Src, imageUrl); writer.AddAttribute("onmouseover", "this.src='" + mouseOverImageUrl + "'"); writer.AddAttribute("onmouseout", "this.src='" + imageUrl + "'"); } writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Src, imageUrl); writer.AddAttribute("onmouseover", "this.src='" + mouseOverImageUrl + "'"); writer.AddAttribute("onmouseout", "this.src='" + imageUrl + "'"); } writer.AddAttribute(HtmlTextWriterAttribute.Alt, tooltiptext);// new add by ccm writer.AddAttribute(HtmlTextWriterAttribute.Title, tooltiptext); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); } writer.RenderEndTag(); // </td> writer.AddAttribute(HtmlTextWriterAttribute.Style, "width:" + this.ControlsGap + "px;"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); }
public void PerformApply() { object obj = GetObjByID(this.BindingObject); WebGridView gridView = new WebGridView(); WebDetailsView detailView = new WebDetailsView(); WebFormView formView = new WebFormView(); WebDataSource ds = new WebDataSource(); if (this.ShowDataStyle == NavigatorStyle.GridStyle && obj is WebGridView) { gridView = (WebGridView)obj; ds = (WebDataSource)GetObjByID(gridView.DataSourceID); foreach (GridViewRow row in gridView.Rows) { if (row.RowType == DataControlRowType.DataRow) { if ((row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit) { gridView.UpdateRow(row.RowIndex, false); } } if (gridView.ShowFooter) { doOkForGridInsert(gridView, ds); } } ds.ApplyUpdates(); } else if (this.ShowDataStyle == NavigatorStyle.DetailStyle && obj is WebDetailsView) { detailView = (WebDetailsView)obj; if (detailView.CurrentMode == DetailsViewMode.Insert) detailView.InsertItem(false); else if (detailView.CurrentMode == DetailsViewMode.Edit) detailView.UpdateItem(false); detailView.ChangeMode(DetailsViewMode.ReadOnly); ds.ApplyUpdates(); } else if (this.ShowDataStyle == NavigatorStyle.FormViewStyle && obj is WebFormView) { formView = (WebFormView)obj; if (formView.CurrentMode == FormViewMode.Insert) formView.InsertItem(false); else if (formView.CurrentMode == FormViewMode.Edit) formView.UpdateItem(false); ds.ApplyUpdates(); if (formView.CurrentMode == FormViewMode.Insert || formView.CurrentMode == FormViewMode.Edit) { formView.ChangeMode(formView.DefaultMode); } } }
public void Open(WebGridView.OpenEditMode mode, GridViewCommandEventArgs args) { List<CompositeDataBoundControl> dbControls = this.GetDBControl(); foreach (var dbControl in dbControls) { if (dbControl != null) { if (mode != WebGridView.OpenEditMode.Insert) { Type dbCtrlType = dbControl.GetType(); MethodInfo executeSyncMethod = dbCtrlType.GetMethod("ExecuteSync", new Type[] { typeof(GridViewCommandEventArgs) }); if (executeSyncMethod != null) { executeSyncMethod.Invoke(dbControl, new object[] { args }); } } this.ChangeMode(mode, dbControl); } } ScriptManager.RegisterStartupScript(this.GetTriggerUpdatePanel(), this.GetType(), "popup", "$find('" + this.ClientID + "_showModalBehavior').show();", true); if (args != null && args.CommandArgument != null) this.ViewState["GridControl"] = args.CommandArgument.ToString(); }
public WebControlTemplate(String Kind, TBlockFieldItem BlockFieldItem, String TableName, List<AjaxTools.AjaxDateTimePicker> InWebDateTimePickerList, List<System.Web.UI.WebControls.Label> InLabelList, WebGridView aGridView) { FFieldItem = BlockFieldItem; FTableName = TableName; FKind = Kind; aAjaxDateTimePickerList = InWebDateTimePickerList; aLabelList = InLabelList; FWebGridView = aGridView; }
private List<int> TotalLength(WebGridView gridView) { List<int> totalLength = new List<int>(); object obj = gridView.GetObjByID(gridView.DataSourceID); if (obj is WebDataSource) { DataTable table = DBUtils.GetDataDictionary(obj as WebDataSource, true).Tables[0]; foreach (DataControlField field in gridView.Columns) { if (field is BoundField) { BoundField bfield = (BoundField)field; bool bDefined = false; foreach (DataRow row in table.Rows) { if (bfield.DataField == row["field_name"].ToString()) { if (row["field_length"] != null && row["field_length"].ToString() != "") totalLength.Add(Convert.ToInt16(row["field_length"])); else totalLength.Add(10); bDefined = true; break; } } if (!bDefined) { totalLength.Add(10); } } else if (field is TemplateField) { TemplateField tfield = (TemplateField)field; bool bDefined = false; foreach (DataRow row in table.Rows) { if (tfield.SortExpression == row["field_name"].ToString()) { if (row["field_length"] != null && row["field_length"].ToString() != "") totalLength.Add(Convert.ToInt16(row["field_length"])); else totalLength.Add(10); bDefined = true; break; } else if (tfield.HeaderText == row["caption"].ToString()) { if (row["field_length"] != null && row["field_length"].ToString() != "") totalLength.Add(Convert.ToInt16(row["field_length"])); else totalLength.Add(10); bDefined = true; break; } } if (!bDefined) { totalLength.Add(10); } } else if (field is ButtonField) { totalLength.Add(20); } else { totalLength.Add(10); } } if (totalLength.Count == gridView.Columns.Count) { return totalLength; } } return new List<int>(); }
public WebControlTemplate(String Kind, TBlockFieldItem BlockFieldItem, String TableName, List<System.Web.UI.WebControls.TextBox> InWebTextBoxList, List<System.Web.UI.WebControls.Label> InLabelList, WebGridView aGridView) { FFieldItem = BlockFieldItem; FTableName = TableName; FKind = Kind; aWebTextBoxList = InWebTextBoxList; aLabelList = InLabelList; FWebGridView = aGridView; }
public void Execute(bool progress) { if ((SrcDataSorce != null || SrcDataSorce != "") && (DestDataSorce != "" || DestDataSorce != null)) { bool tempSrc = false; bool tempDest = false; WebGridView wgv = new WebGridView(); WebDetailsView wdv = new WebDetailsView(); WebFormView wfv = new WebFormView(); WebDataSource wsSrc = new WebDataSource(); DataSet dsSrc = new DataSet(); WebDataSource wsDest = new WebDataSource(); DataSet dsDest = new DataSet(); WebDataSource wsDestM = new WebDataSource(); foreach (System.Web.UI.Control c in this.Page.Form.Controls) { if (c is WebDataSource && (c as WebDataSource).ID == this.SrcDataSorce) { wsSrc = c as WebDataSource; tempSrc = wsSrc.AutoApply; wsSrc.AutoApply = false; dsSrc = wsSrc.InnerDataSet; } if (c is WebDataSource && (c as WebDataSource).ID == this.DestDataSorce) { wsDest = c as WebDataSource; tempDest = wsDest.AutoApply; wsDest.AutoApply = false; dsDest = wsDest.InnerDataSet; foreach (System.Web.UI.Control ctrl in this.Page.Form.Controls) if (ctrl is WebDataSource && (ctrl as WebDataSource).ID == wsDest.MasterDataSource) { wsDestM = ctrl as WebDataSource; //added by lily 2006/12/14 for detail has no innerdataset dsDest = wsDestM.InnerDataSet; //added by lily 2006/12/14 for detail has no innerdataset break; } } } bool isGet = false; DataTable dtSrc = new DataTable(); for (int i = 0; i < dsSrc.Relations.Count; i++) foreach (System.Web.UI.Control c in this.Page.Form.Controls) if (c is WebDataSource && (c as WebDataSource).ID == this.SrcDataSorce && (c as WebDataSource).DataMember == dsSrc.Relations[i].ChildTable.ToString()) { dtSrc = dsSrc.Relations[i].ChildTable; isGet = true; } if (isGet == false) if (dsSrc.Tables.Count > 0) dtSrc = dsSrc.Tables[0]; else dtSrc = wsSrc.CommandTable; DataTable dtDest = new DataTable(); isGet = false; for (int i = 0; i < dsDest.Relations.Count; i++) foreach (System.Web.UI.Control c in this.Page.Form.Controls) if (c is WebDataSource && (c as WebDataSource).ID == this.DestDataSorce && (c as WebDataSource).DataMember == dsDest.Relations[i].ChildTable.ToString()) { dtDest = dsDest.Relations[i].ChildTable; isGet = true; } if (isGet == false) dtDest = dsDest.Tables[0]; DataTable dtDestM = new DataTable(); isGet = false; for (int i = 0; i < wsDestM.InnerDataSet.Relations.Count; i++) if (this.DestDataSorce == wsDestM.InnerDataSet.Relations[i].ChildTable.ToString()) { dtDestM = wsDestM.InnerDataSet.Relations[i].ChildTable; isGet = true; } if (isGet == false) dtDestM = wsDestM.InnerDataSet.Tables[0]; DataTable dsDestMaster =dsDest.Tables[0]; string MasterKey = null; foreach (System.Web.UI.Control c in this.Page.Form.Controls) { if (c is WebFormView) foreach (System.Web.UI.Control ctrl in this.Page.Form.Controls) if (ctrl is WebDataSource && (ctrl as WebDataSource).ID == (c as WebFormView).DataSourceID && (ctrl as WebDataSource).DataMember == dsDestMaster.ToString()) { MasterKey = dsDestMaster.Rows[(c as WebFormView).DataItemIndex][dsDestMaster.PrimaryKey[0].ToString()].ToString(); break; } if (c is WebDetailsView) foreach (System.Web.UI.Control ctrl in this.Page.Form.Controls) if (ctrl is WebDataSource && (ctrl as WebDataSource).ID == (c as WebDetailsView).DataSourceID && (ctrl as WebDataSource).DataMember == dsDestMaster.ToString()) { MasterKey = dsDestMaster.Rows[(c as WebDetailsView).DataItemIndex][dsDestMaster.PrimaryKey[0].ToString()].ToString(); break; } } //modified by lily 2006/12/14 for: List<> can be added when needed, DataRow[] cannot //DataRow[] drDestTemp = new DataRow[dtDest.Rows.Count]; List<DataRow> drDestTemp = new List<DataRow>(); for (int i = 0; i < dtDest.Rows.Count; i++) if (dtDest.Rows[i][dsDestMaster.PrimaryKey[0].ToString()].ToString() == MasterKey) drDestTemp.Add(dtDest.Rows[i]); //drDestTemp[i] = dtDest.Rows[i]; ArrayList strSrc = new ArrayList(); ArrayList strDest = new ArrayList(); foreach (WebKeyMatchColumn kmc in this.KeyMatchColumns) if (kmc.SrcColumnName == null || kmc.DestColumnName == null || kmc.SrcColumnName == "" || kmc.DestColumnName == "") { language = CliUtils.fClientLang; string message = SysMsg.GetSystemMessage(language, "Srvtools", "InfoClientMove", "iskeyMatchColumn", true); this.Page.Response.Write("<script>alert(\"" + message + "\");</script>"); return; } else { strSrc.Add(kmc.SrcColumnName); strDest.Add(kmc.DestColumnName); } for (int i = 0; i < dtSrc.Rows.Count; i++) { int flag = 0; Hashtable ht = new Hashtable(); if (this.AlwaysInsert == false && strSrc != null && drDestTemp.Count > 0) for (int j = 0; j < drDestTemp.Count; j++) { for (int x = 0; x < strSrc.Count; x++) if (drDestTemp[j] != null && dtSrc.Rows[i][strSrc[x].ToString()].ToString() == drDestTemp[j][strDest[x].ToString()].ToString()) flag++; if (flag == strSrc.Count) { if (this.AlwaysReplace == true) { for (int x = 0; x < this.MatchColumns.Count; x++) { WebMatchColumn mc = this.MatchColumns[x]; if (mc.Expression != null && mc.Expression != "") { DataColumn dcExpression = new DataColumn(); dcExpression.ColumnName = mc.Expression; dcExpression.Expression = mc.Expression; if (dtSrc.Columns.Contains(dcExpression.ColumnName) == false) dtSrc.Columns.Add(dcExpression); drDestTemp[j][mc.DestColumnName] = dtSrc.Rows[i][mc.Expression].ToString(); } else drDestTemp[j][mc.DestColumnName] = dtSrc.Rows[i][mc.SrcColumnName].ToString(); } OnAfterMove(new EventArgs()); } break; } else flag = 0; } if (flag != strSrc.Count || strSrc.Count == 0) { DataRow dr = dtDest.NewRow(); ht.Add(dsDest.Tables[0].PrimaryKey[0].ToString(), MasterKey); foreach (WebMatchColumn mc in this.MatchColumns) if (mc.Expression != null && mc.Expression != "") { DataColumn dcExpression = new DataColumn(); dcExpression.ColumnName = mc.Expression; dcExpression.Expression = mc.Expression; if (dtSrc.Columns.Contains(dcExpression.ColumnName) == false) dtSrc.Columns.Add(dcExpression); ht.Add(mc.DestColumnName, dtSrc.Rows[i][mc.Expression]); } else { if ((mc.SrcColumnName == "" || mc.DestColumnName == "" || mc.SrcColumnName == null || mc.DestColumnName == null) && (mc.Expression == null || mc.Expression == "")) { language = CliUtils.fClientLang; string message = SysMsg.GetSystemMessage(language, "Srvtools", "InfoClientMove", "ismatchColumn", true); this.Page.Response.Write("<script>alert(\"" + message + "\");</script>"); return; } else ht.Add(mc.DestColumnName, dtSrc.Rows[i][mc.SrcColumnName]); } OnAfterMove(new EventArgs()); int isExsite = 0; for (int j = 0; j < dtDestM.Rows.Count; j++) { isExsite = 0; for (int x = 0; x < dtDestM.Columns.Count; x++) if (ht[dtDestM.Columns[x].ToString()] != null && ht[dtDestM.Columns[x].ToString()].ToString() == dtDestM.Rows[j][dtDestM.Columns[x].ToString()].ToString()) isExsite++; if (isExsite == ht.Count) break; } if (isExsite != ht.Count) { wsDest.Insert(ht); OnAfterInsert(new EventArgs()); } } } wsSrc.AutoApply = tempSrc; wsDest.AutoApply = tempDest; if (progress == true) { System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(LongTask)); thread.Start(); this.Page.Session["State"] = 1; OpenProgressBar(this.Page); } this.Page.DataBind(); } }
/*public override bool Initialize(bool sortingEnabled, Control control) { if (!DesignMode) { object obj = null; string dm = ""; if (control is WebGridView) { gridView = (WebGridView)control; obj = gridView.GetObjByID(gridView.DataSourceID); if (obj != null && obj is WebDataSource) { WebDataSource wds = (WebDataSource)obj; if (wds.MasterDataSource != null && wds.MasterDataSource != "") { object objMaster = gridView.GetObjByID(wds.MasterDataSource); obj = objMaster; } dm = wds.DataMember; } } else if (control is WebDetailsView) { detView = (WebDetailsView)control; obj = detView.GetObjByID(detView.DataSourceID); if (obj != null && obj is WebDataSource) { WebDataSource wds = (WebDataSource)obj; dm = wds.DataMember; } } if (obj != null && obj is WebDataSource) { WebDataSource wds = (WebDataSource)obj; tab = wds.InnerDataSet.Tables[dm]; if (!tab.Columns.Contains(this.Expression)) { DataColumn col = new DataColumn(this.Expression, typeof(decimal), this.Expression); tab.Columns.Add(col); } } } return base.Initialize(sortingEnabled, control); }*/ public override bool Initialize(bool sortingEnabled, Control control) { if (!DesignMode) { WebDataSource wds = null; string dm = ""; if (control is WebGridView) { gridView = (WebGridView)control; object obj = gridView.GetObjByID(gridView.DataSourceID); if (obj != null && obj is WebDataSource) { WebDataSource wdsDetail = (WebDataSource)obj; if (wdsDetail.MasterDataSource != null && wdsDetail.MasterDataSource != "") { object objMaster = gridView.GetObjByID(wdsDetail.MasterDataSource); if (objMaster != null && objMaster is WebDataSource) { wds = (WebDataSource)objMaster; } } else { wds = wdsDetail; } dm = wdsDetail.DataMember; } } else if (control is WebDetailsView) { detView = (WebDetailsView)control; object obj = detView.GetObjByID(detView.DataSourceID); if (obj != null && obj is WebDataSource) { wds = (WebDataSource)obj; dm = wds.DataMember; } } if (wds != null && wds.InnerDataSet != null) { tab = wds.InnerDataSet.Tables[dm]; if (!tab.Columns.Contains(this.Expression)) { DataColumn col = new DataColumn(); col.ColumnName = this.Expression; col.Expression = this.Expression; //DataColumn col = new DataColumn(this.Expression, typeof(decimal), this.Expression); tab.Columns.Add(col); } } } return base.Initialize(sortingEnabled, control); }
public void ChangeMode(WebGridView.OpenEditMode mode, CompositeDataBoundControl dbControl) { if (mode == WebGridView.OpenEditMode.View) { if (dbControl is FormView) { ((FormView)dbControl).ChangeMode(FormViewMode.ReadOnly); } else if (dbControl is DetailsView) { ((DetailsView)dbControl).ChangeMode(DetailsViewMode.ReadOnly); } } else if (mode == WebGridView.OpenEditMode.Update) { if (dbControl is FormView) { ((FormView)dbControl).ChangeMode(FormViewMode.Edit); } else if (dbControl is DetailsView) { ((DetailsView)dbControl).ChangeMode(DetailsViewMode.Edit); } } else if (mode == WebGridView.OpenEditMode.Insert) { if (dbControl is FormView) { ((FormView)dbControl).ChangeMode(FormViewMode.Insert); } else if (dbControl is DetailsView) { ((DetailsView)dbControl).ChangeMode(DetailsViewMode.Insert); } } }