C# DEV GridView 的使用心得

最近做前后台分离的项目,需要用表格展示数据,通过http返回数据,就想用用DEV 相关的控件进行展示,就做了一个GridView的窗口基类来处理数据,一下是这个基类

 public partial class BaseUIForm : Form
    {
        protected BaseServerClass m_BaseServer;
        public BaseUIForm()
        {
            InitializeComponent();
        }
        public void Init()
        {
            m_BaseServer.Init(ref this.gridControl1,ref this.gridView1);
        }
        protected void simpleButton1_Click(object sender, EventArgs e)
        {
            m_BaseServer.Add();
            Init();
        }
        #region 右键单击事件
        private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            //根据ContextMenuStrip Item 的name来判断
            if ((e.ClickedItem).Name == "updatadata")
            {
                m_BaseServer.Update(ref this.gridView1);
            }
            else if ((e.ClickedItem).Name == "deletedata")
            {
                m_BaseServer.Delete(ref this.gridControl1, ref this.gridView1);
            }
            else if((e.ClickedItem).Name == "refreshdata")
            {
                Init();
            }
        }
        #endregion

        private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e)
        {
            int intselect = gridView1.SelectedRowsCount;
            updatadata.Enabled = false;
            deletedata.Enabled = false;
            if (intselect == 1)
            {
                updatadata.Enabled = true;
                deletedata.Enabled = true;
            }
            else if (intselect > 1)
            {
                updatadata.Enabled = false;
                deletedata.Enabled = true;
            }
        }
    }
    //数据处理的基类
 public abstract class BaseServerClass
    {
        public abstract void Init(ref GridControl gridcontrol, ref GridView gridView);
        public abstract void Delete(ref GridControl gridcontrol,ref GridView gridView);
        public abstract void Update(ref GridView gridView);
        public abstract void Add();
    }
   //特定窗口处理
      class DepartmentManagement:BaseUIForm
	{
    
    public DepartmentManagement()
    {
        this.simpleButton1.Text = "添加科室";
        m_BaseServer = new DepartmentManagementServer();
        Init();
    }
    }

一下是业务处理的相关代码,包括GridView展示数据和右击菜单的事件,http获取model解析展示

public class DepartmentManagementServer : BaseServerClass
    {
        public override void Delete(ref GridControl gridcontrol, ref GridView gridView)
        {
            if (gridView == null || gridView.SelectedRowsCount == 0) return;
            //DataRow[] rows = new DataRow[gridView.SelectedRowsCount];
            gridView.BeginSort();
            for (int i = 0; i < gridView.SelectedRowsCount; i++)
            {
                var row = gridView.GetDataRow(gridView.GetSelectedRows()[i]);
                List<KeyValuePair<string, string>> paramArray = new List<KeyValuePair<string, string>>();
                paramArray.Add(new KeyValuePair<string, string>("id", row["id"].ToString()));
                Common.Common.getPostMsgInfo("deleteOffice", paramArray);
                row.Delete();
            }
            gridView.EndSort();
        }
        public override void Add()
        {
            AddDepartment frm = new AddDepartment();
            frm.ShowDialog();
        }
        public override void Init(ref GridControl gridcontrol, ref GridView gridView)
        {
            DataTable ds = new DataTable();
            ds.Columns.Add("ID");
            ds.Columns.Add("科室名称");
            ds.Columns.Add("描述");
            //ds.Columns.Add("操作");
            List<KeyValuePair<string, string>> paramArray = new List<KeyValuePair<string, string>>();
            var stringvalue = Common.Common.getGetMsgInfo("getAllOfficeInfo", paramArray);
            var obj = Common.Common.JsonToObject(stringvalue);
            if (1 == obj.GetValue("status").ToObject<short>())
            {
                var SurveyArray = JsonConvert.DeserializeObject<List<Office>>(obj.GetValue("list").ToString());
                foreach (Office mdbdata in SurveyArray)
                {
                    DataRow dr = ds.NewRow();
                    dr[0] = mdbdata.id;
                    dr[1] = mdbdata.officeName;
                    dr[2] = mdbdata.officeDesc;
                    ds.Rows.Add(dr);
                }
            }
            gridcontrol.DataSource = ds;
            gridView.OptionsBehavior.Editable = false;
            gridView.OptionsSelection.MultiSelect = true;
        }

        public override void Update(ref GridView gridView)
        {
            if (gridView == null || gridView.SelectedRowsCount == 0) return;
            if(gridView.SelectedRowsCount > 0)
            {
                var row = gridView.GetDataRow(gridView.GetSelectedRows()[0]);
                UpdataDepartment frm = new UpdataDepartment(row["id"].ToString());
                frm.ShowDialog();
            }
        }
    }

主要是为了贴出基类和GridView增加删除初始化的处理方式,和json解析处理方式相关的代码,希望对大家有用

猜你喜欢

转载自blog.csdn.net/u012453032/article/details/82980095