dev 控件使用技巧,待完善

来源:互联网 发布:golang webloop 编辑:程序博客网 时间:2024/05/01 03:55

1、treeList不显示父级子级结构,如grid使用

属性:Options->OptionsView 下的 ShowPreview:True,ShowRoot:False数据 下的 KeyFieldName:ID,ParentFiledName:ID。
去掉选择列:OptionsView下的 “ShowIndicator=false”
checkbox父子联动:treeList1.OptionsBehavior.AllowRecursiveNodeChecking="true"

2、绑定GridLookUpEdit

 public static void BindGNLB(GridLookUpEdit txtGNLB)        {            txtGNLB.Text = "";            txtGNLB.Properties.View.OptionsBehavior.AutoPopulateColumns = false;            BLL.KZ_GNLB bll = new BLL.KZ_GNLB();                      DataTable dt = bll.GetList("", "PXH");            txtGNLB.Properties.DataSource = dt;  //数据源            txtGNLB.Properties.DisplayMember = "GNMC"; //绑定Text显示的字段源名称            txtGNLB.Properties.ValueMember = "GNID"; //绑定Value字段源名称            txtGNLB.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;            txtGNLB.Properties.View.BestFitColumns();            txtGNLB.Properties.ShowFooter = false;            txtGNLB.Properties.View.OptionsView.ShowAutoFilterRow = true; //显示不显示grid上第一个空行,也是用于检索的应用            txtGNLB.Properties.View.OptionsFilter.AllowFilterEditor = false;            txtGNLB.Properties.AutoComplete = false;            txtGNLB.Properties.ImmediatePopup = true;            txtGNLB.Properties.PopupFilterMode = DevExpress.XtraEditors.PopupFilterMode.Contains;            txtGNLB.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; //配置,用于像文本框        }    

 开启 text检索 

txtGNLB.Properties.DisplayMember = "DISPLAY"; //绑定Text显示的字段源名称
 DevExpress.XtraGrid.Columns.GridColumn colBH = new DevExpress.XtraGrid.Columns.GridColumn();            DevExpress.XtraGrid.Columns.GridColumn colMC = new DevExpress.XtraGrid.Columns.GridColumn();           // DevExpress.XtraGrid.Columns.GridColumn colYWM = new DevExpress.XtraGrid.Columns.GridColumn();            DevExpress.XtraGrid.Columns.GridColumn colDisplay = new DevExpress.XtraGrid.Columns.GridColumn();                        setGridColumn(colBH, "编号", "BH", "colBH", 100);            setGridColumn(colMC, "科室", "MC", "colMC", 100);            //setGridColumn(colYWM, "音位码", "YWM", "colYWM", 100);            setGridColumn(colDisplay, "DISPLAY", "DISPLAY", "colDisplay", 100);            colDisplay.Visible = false;            gridLookUpEdit.Properties.View.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {            colBH,            colMC,colDisplay});
 private void setGridColumn(DevExpress.XtraGrid.Columns.GridColumn column     , string Caption, string FieldName, string Name, int width)        {            column.AppearanceHeader.Options.UseTextOptions = true;            column.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;            column.Caption = Caption;            column.FieldName = FieldName;            column.MinWidth = width;            column.Name = Name;            column.Visible = true;            column.VisibleIndex = 0;            column.Width = width;        }

 3、绑定ComboBoxEdit 

      

 public static void BindRoleGroup(ComboBoxEdit ddlRoleGroup)        {            Dictionary<string, string> dic=  MyConst.ROLEGROUP.GetRoleGroup();            ddlRoleGroup.Properties.Items.Add(new ComboBoxHelp("", "-请选择-"));            foreach(var item in dic)            {                ddlRoleGroup.Properties.Items.Add(new ComboBoxHelp(item.Value, item.Key));            }            ddlRoleGroup.Properties.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.DropDown;            ddlRoleGroup.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;        }


4、NavBarConrol动态加载用户控件

 public mainForm()        {            InitializeComponent();            if (LoginUser.GROUPID == "0") // 开发公司            {                navBarMenu.Groups.Clear();                this.Text = this.Text + "   开发公司 " + LoginUser.CZYXM;                MyConst.AdminMenu adminMenu = new MyConst.AdminMenu();                DataTable dt = adminMenu.GetAdminMenu();                NavBarGroup group;                DataRow[] pRows = dt.Select("PGNID='0'");                for (int i = 0; i < pRows.Length; i++) {                    group = new NavBarGroup();                    group.Caption = pRows[i]["GNMC"].ToString();                    group.Name = pRows[i]["AssemblyClass"].ToString();                    this.navBarMenu.Groups.AddRange(new NavBarGroup[] {                    group});                    BindchildMenu(group, dt, pRows[i]["GNID"].ToString());                }            }            else            {            }        }

 void BindchildMenu(NavBarGroup group,DataTable dt, string pGNID)        {            DataRow[] cRows = dt.Select("PGNID='" + pGNID + "'");            NavBarItem barItem;            for (int i = 0; i < cRows.Length; i++)            {                barItem = new NavBarItem();                barItem.Caption = cRows[i]["GNMC"].ToString();                barItem.Name = cRows[i]["AssemblyClass"].ToString();                barItem.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(this.lbtn_LinkClicked);                group.ItemLinks.AddRange(new NavBarItemLink[] {                    new NavBarItemLink(barItem)});            }        }
 // 加载事件        private void lbtn_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)        {            NavBarItem navBarItem = sender as NavBarItem;            UserControl c;            if (!dic_Controls.TryGetValue(navBarItem.Name, out c))            {                c = Assembly.Load("Hospital").CreateInstance(navBarItem.Name) as UserControl;                dic_Controls.Add(navBarItem.Name, c);            }                      addControl(c);        } 

/// <summary>        /// 加载控件        /// </summary>        /// <param name="control"></param>        private void addControl(Control control)        {            clearControl();            control.Size = this.panelRight.Size;            panelRight.Controls.Clear();            panelRight.Controls.Add(control);        }

5、dxValidationProvider 控件的使用

 /// <summary>        /// 验证是否为空        /// </summary>        private void ValidatEmptyUser()        {            dxValidationProvider1.ValidationMode = ValidationMode.Manual;            dxValidationProvider1.Validate();            Validate(txtCZYBM, "该字段不能为空!");            Validate(this.txtLOGID, "该字段不能为空!");            Validate(this.txtCZYXM, "该字段不能为空!");            Validate(this.txtROLE, "该字段不能为空!");            Validate(this.txtPassword, "该字段不能为空!");            Validate(this.txtConfirmPassword, "该字段不能为空!");        }        /// <summary>        /// 验证控件样式        /// </summary>        /// <param name="c"></param>        /// <param name="ErrorText"></param>        private void Validate(Control c, string ErrorText)        {            ConditionValidationRule notEmpty = new ConditionValidationRule();            notEmpty.ConditionOperator = ConditionOperator.IsNotBlank;            notEmpty.ErrorText = ErrorText;            dxValidationProvider1.SetValidationRule(c, notEmpty);            dxValidationProvider1.SetIconAlignment(c, ErrorIconAlignment.MiddleRight);        }


6、GridControl 选中行下追加一行 

var SQL = "SELECT ROWNUM AS XH,BH AS KSBH,MC AS FWKS FROM YHWXQ_V_KS where LB='1'";            grid_dataTable = DAL.HISControl.CreateDALControl().GetDataTable(SQL);            this.gridPB.DataSource = grid_dataTable;

 // 新增、追加行        private void btnXZ_Click(object sender, EventArgs e)        {            DataRowView dataRowView = (DataRowView)this.advBandedGridView1.GetFocusedRow();                        // 当前序号            int XH = Int32.Parse(dataRowView["XH"].ToString());                        // 当前服务科室            string FWKS = dataRowView["FWKS"].ToString();            // 当前服务科室编号            string KSBH = dataRowView["KSBH"].ToString();            // 新增行(序号、服务科室、科室编号)            DataRow newRow = grid_dataTable.NewRow();            newRow["XH"] = XH+1;            newRow["FWKS"] = FWKS;            newRow["KSBH"] = KSBH;            int max_XH = Int32.Parse(grid_dataTable.Compute("max(XH)","").ToString());            for (int i = max_XH; i > XH; i--)            {                grid_dataTable.DefaultView[i - 1]["XH"] = i + 1;            }            grid_dataTable.Rows.Add(newRow);            grid_dataTable.DefaultView.Sort = "XH";            this.gridPB.DataSource = grid_dataTable.DefaultView;        }
GridControl Bands 冻结列  Fixed =left