Beispiel #1
0
 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;
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
        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();
        }
Beispiel #5
0
 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;
 }
Beispiel #6
0
 public override bool Initialize(bool sortingEnabled, Control control)
 {
     gridView = (WebGridView)control;
     return base.Initialize(sortingEnabled, control);
 }
Beispiel #7
0
 public void Open(WebGridView.OpenEditMode mode)
 {
     Open(mode, null);
 }
Beispiel #8
0
        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

            }
        }
Beispiel #9
0
        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;
        }
Beispiel #10
0
        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");
            }
        }
Beispiel #11
0
 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;
 }
Beispiel #12
0
        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();
        }
Beispiel #13
0
        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);
                }
            }
        }
Beispiel #14
0
        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();
        }
Beispiel #15
0
 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;
 }
Beispiel #16
0
 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>();
 }
Beispiel #17
0
 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;
 }
Beispiel #18
0
        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();
            }
        }
Beispiel #19
0
        /*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);
        }
Beispiel #20
0
 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);
         }
     }
 }