/// <summary> /// 绑定数据 /// </summary> private void BindData() { XmlNodeList xmlNodeLst = xmlhelper.Read("datatype"); List <DefaultTypeInfo> dataTypeInfoList = new List <DefaultTypeInfo>(); foreach (XmlNode xn1 in xmlNodeLst) { DefaultTypeInfo dataTypeInfo = new DefaultTypeInfo(); // 将节点转换为元素,便于得到节点的属性值 XmlElement xe = (XmlElement)xn1; // 得到Type和ISBN两个属性的属性值 dataTypeInfo.GUID = xe.GetAttribute("guid").ToString(); // 得到DataTypeInfo节点的所有子节点 XmlNodeList xnl0 = xe.ChildNodes; dataTypeInfo.Name = xnl0.Item(0).InnerText; dataTypeInfo.ChineseName = xnl0.Item(1).InnerText; dataTypeInfo.Oracle = xnl0.Item(2).InnerText; dataTypeInfo.Mysql = xnl0.Item(3).InnerText; dataTypeInfo.DB2 = xnl0.Item(4).InnerText; dataTypeInfo.SqlServer = xnl0.Item(5).InnerText; dataTypeInfo.Sqlite = xnl0.Item(6).InnerText; dataTypeInfo.Access = xnl0.Item(7).InnerText; dataTypeInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); dataTypeInfoList.Add(dataTypeInfo); } // 添加一行空行 dataTypeInfoList.Add(new DefaultTypeInfo()); gridControl1.DataSource = dataTypeInfoList; gridView1.Columns["GUID"].Visible = false; gridView1.Columns["lstInfo"].Visible = false; }
private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (string.IsNullOrEmpty((gridView1.GetFocusedRow() as DefaultTypeInfo).GUID) && (gridView1.FocusedRowHandle + 1 == gridView1.RowCount)) { btnAdd_Click(null, null); } tmpdataTypeInfo = gridView1.GetRow(e.RowHandle) as DefaultTypeInfo; }
private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { // xmlhelper.Read("bookstore/book[@ISBN=\"7-111-19149-6\"]") Attributes 的属性 // xmlhelper.Read("bookstore/book[title=\"计算机硬件技术基础\"]") 内部节点 XmlNodeList xmlNodeLst = xmlhelper.Read("datatype/item[@gid=\"" + tmpdataTypeInfo.Gid + "\"]"); Int32 idx = -1; switch (e.Column.ToString()) { case "类型名": idx = 0; break; case "名称": idx = 1; break; case "Oracle": idx = 2; break; case "Mysql": idx = 3; break; case "DB2": idx = 4; break; case "Sql Server": idx = 5; break; case "Sqlite": idx = 6; break; case "Access": idx = 7; break; case "CShort": idx = 8; break; } if (idx == -1) { return; } xmlNodeLst.Item(idx).InnerText = e.Value.ToString(); xmlhelper.Save(false); tmpdataTypeInfo = null; }
/// <summary> /// 插入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnInsert_Click(object sender, EventArgs e) { XmlNodeList xmlNodeLst = xmlhelper.Read("datatype/item[@guid=\"" + (gridView1.GetFocusedRow() as DefaultTypeInfo).GUID + "\"]"); var datatypeInfo = new DefaultTypeInfo(); datatypeInfo.GUID = System.Guid.NewGuid().ToString(); datatypeInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); xmlhelper.InsertElement("item", "guid", datatypeInfo.GUID, string.Format(xmlModel, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty), xmlNodeLst.Item(0).ParentNode); xmlhelper.Save(false); (gridView1.DataSource as List <DefaultTypeInfo>).Insert(gridView1.FocusedRowHandle, datatypeInfo); gridView1.RefreshData(); }
/// <summary> /// 新增 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAdd_Click(object sender, EventArgs e) { var datatypeInfo = new DefaultTypeInfo(); datatypeInfo.GUID = System.Guid.NewGuid().ToString(); datatypeInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); xmlhelper.InsertElement("datatype", "item", "guid", datatypeInfo.GUID, string.Format(xmlModel, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty)); xmlhelper.Save(false); (gridView1.DataSource as List <DefaultTypeInfo>).Insert(gridView1.RowCount - 1, datatypeInfo); gridView1.RefreshData(); }
/// <summary> /// 导入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnImport_Click(object sender, EventArgs e) { string importFile = FileDialogHelper.OpenExcel(false); if (!string.IsNullOrEmpty(importFile)) { // 判断文件是否被占用 if (FileUtil.FileIsUsing(importFile)) { MessageDxUtil.ShowWarning(string.Format("文件[{0}]被占用,请先关闭文件后再重试!", importFile)); return; } DataTable dt = MyXlsHelper.Import(importFile, "标准数据类型", 2, 1); // 如果没有结果集就不在继续 if (dt == null) { return; } Int32 addRows = 0; for (Int32 i = 0; i < dt.Rows.Count; i++) { // 判断是否存在不存在则添加 if (!lstName.Contains(dt.Rows[i][0].ToString())) { var datatypeInfo = new DefaultTypeInfo(); datatypeInfo.Gid = System.Guid.NewGuid().ToString(); datatypeInfo.Name = dt.Rows[i][0].ToString(); datatypeInfo.ChineseName = dt.Rows[i][1].ToString(); datatypeInfo.Oracle = dt.Rows[i][2].ToString(); datatypeInfo.Mysql = dt.Rows[i][3].ToString(); datatypeInfo.DB2 = dt.Rows[i][4].ToString(); datatypeInfo.SqlServer = dt.Rows[i][5].ToString(); datatypeInfo.Sqlite = dt.Rows[i][6].ToString(); datatypeInfo.Access = dt.Rows[i][7].ToString(); datatypeInfo.CShort = dt.Rows[i][8].ToString(); xmlhelper.InsertElement("datatype", "item", "gid", datatypeInfo.Gid, string.Format(xmlModel, dt.Rows[i][0].ToString(), dt.Rows[i][1].ToString(), dt.Rows[i][2].ToString(), dt.Rows[i][3].ToString(), dt.Rows[i][4].ToString(), dt.Rows[i][5].ToString(), dt.Rows[i][6].ToString(), dt.Rows[i][7].ToString(), dt.Rows[i][8].ToString())); (gridView1.DataSource as List <DefaultTypeInfo>).Insert((gridView1.DataSource as List <DefaultTypeInfo>).Count - 1, datatypeInfo); addRows++; lstName.Add(dt.Rows[i][0].ToString()); } } xmlhelper.Save(false); gridView1.RefreshData(); } }
/// <summary> /// 新增 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAdd_Click(object sender, EventArgs e) { // 假如在查询去掉查询在新增 if (!string.IsNullOrEmpty(gridView1.ActiveFilterString)) { gridView1.ActiveFilterString = ""; } var datatypeInfo = new DefaultTypeInfo(); datatypeInfo.Gid = System.Guid.NewGuid().ToString(); datatypeInfo.lstInfo = new Dictionary <string, DevExpress.XtraEditors.DXErrorProvider.ErrorInfo>(); xmlhelper.InsertElement("datatype", "item", "gid", datatypeInfo.Gid, string.Format(xmlModel, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty)); xmlhelper.Save(false); (gridView1.DataSource as List <DefaultTypeInfo>).Insert((gridView1.DataSource as List <DefaultTypeInfo>).Count - 1, datatypeInfo); gridView1.RefreshData(); }
/// <summary> /// 下移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMoveDown_Click(object sender, EventArgs e) { if (gridView1.FocusedRowHandle == (gridView1.RowCount - 2)) { return; } DefaultTypeInfo cudataTypeInfo = gridView1.GetFocusedRow() as DefaultTypeInfo; DefaultTypeInfo nextdataTypeInfo = gridView1.GetRow(gridView1.FocusedRowHandle + 1) as DefaultTypeInfo; // 深拷贝 DefaultTypeInfo tmpdataTypeInfo = new DefaultTypeInfo(); tmpdataTypeInfo.GUID = cudataTypeInfo.GUID; tmpdataTypeInfo.Name = cudataTypeInfo.Name; tmpdataTypeInfo.ChineseName = cudataTypeInfo.ChineseName; tmpdataTypeInfo.Oracle = cudataTypeInfo.Oracle; tmpdataTypeInfo.Mysql = cudataTypeInfo.Mysql; tmpdataTypeInfo.DB2 = cudataTypeInfo.DB2; tmpdataTypeInfo.SqlServer = cudataTypeInfo.SqlServer; tmpdataTypeInfo.Sqlite = cudataTypeInfo.Sqlite; tmpdataTypeInfo.Access = cudataTypeInfo.Access; tmpdataTypeInfo.lstInfo = cudataTypeInfo.lstInfo; // 更新内容 cudataTypeInfo.GUID = nextdataTypeInfo.GUID; cudataTypeInfo.Name = nextdataTypeInfo.Name; cudataTypeInfo.ChineseName = nextdataTypeInfo.ChineseName; cudataTypeInfo.Oracle = nextdataTypeInfo.Oracle; cudataTypeInfo.Mysql = nextdataTypeInfo.Mysql; cudataTypeInfo.DB2 = nextdataTypeInfo.DB2; cudataTypeInfo.SqlServer = nextdataTypeInfo.SqlServer; cudataTypeInfo.Sqlite = nextdataTypeInfo.Sqlite; cudataTypeInfo.Access = nextdataTypeInfo.Access; cudataTypeInfo.lstInfo = nextdataTypeInfo.lstInfo; nextdataTypeInfo.GUID = tmpdataTypeInfo.GUID; nextdataTypeInfo.Name = tmpdataTypeInfo.Name; nextdataTypeInfo.ChineseName = tmpdataTypeInfo.ChineseName; nextdataTypeInfo.Oracle = tmpdataTypeInfo.Oracle; nextdataTypeInfo.Mysql = tmpdataTypeInfo.Mysql; nextdataTypeInfo.DB2 = tmpdataTypeInfo.DB2; nextdataTypeInfo.SqlServer = tmpdataTypeInfo.SqlServer; nextdataTypeInfo.Sqlite = tmpdataTypeInfo.Sqlite; nextdataTypeInfo.Access = tmpdataTypeInfo.Access; nextdataTypeInfo.lstInfo = tmpdataTypeInfo.lstInfo; // 更细XML内容 string cuXMLStr = xmlhelper.ReadInnerXML("datatype/item[@guid=\"" + cudataTypeInfo.GUID + "\"]"); string preXMLStr = xmlhelper.ReadInnerXML("datatype/item[@guid=\"" + nextdataTypeInfo.GUID + "\"]"); xmlhelper.Replace("datatype/item[@guid=\"" + cudataTypeInfo.GUID + "\"]", preXMLStr); xmlhelper.Replace("datatype/item[@guid=\"" + nextdataTypeInfo.GUID + "\"]", cuXMLStr); // 更新GUID var cuattribute = xmlhelper.Read("datatype/item[@guid=\"" + cudataTypeInfo.GUID + "\"]").Item(0).ParentNode.Attributes["guid"]; var nextattribute = xmlhelper.Read("datatype/item[@guid=\"" + nextdataTypeInfo.GUID + "\"]").Item(0).ParentNode.Attributes["guid"]; cuattribute.Value = nextdataTypeInfo.GUID; nextattribute.Value = cudataTypeInfo.GUID; xmlhelper.Save(false); gridView1.RefreshData(); gridView1.FocusedRowHandle = gridView1.FocusedRowHandle + 1; }
/// <summary> /// 上移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMoveUp_Click(object sender, EventArgs e) { if (gridView1.FocusedRowHandle == 0) { return; } DefaultTypeInfo cudataTypeInfo = gridView1.GetFocusedRow() as DefaultTypeInfo; DefaultTypeInfo predataTypeInfo = gridView1.GetRow(gridView1.FocusedRowHandle - 1) as DefaultTypeInfo; // 深拷贝 DefaultTypeInfo tmpdataTypeInfo = new DefaultTypeInfo(); tmpdataTypeInfo.Gid = cudataTypeInfo.Gid; tmpdataTypeInfo.Name = cudataTypeInfo.Name; tmpdataTypeInfo.ChineseName = cudataTypeInfo.ChineseName; tmpdataTypeInfo.Oracle = cudataTypeInfo.Oracle; tmpdataTypeInfo.Mysql = cudataTypeInfo.Mysql; tmpdataTypeInfo.DB2 = cudataTypeInfo.DB2; tmpdataTypeInfo.SqlServer = cudataTypeInfo.SqlServer; tmpdataTypeInfo.Sqlite = cudataTypeInfo.Sqlite; tmpdataTypeInfo.Access = cudataTypeInfo.Access; tmpdataTypeInfo.CShort = cudataTypeInfo.CShort; tmpdataTypeInfo.lstInfo = cudataTypeInfo.lstInfo; // 更新内容 cudataTypeInfo.Gid = predataTypeInfo.Gid; cudataTypeInfo.Name = predataTypeInfo.Name; cudataTypeInfo.ChineseName = predataTypeInfo.ChineseName; cudataTypeInfo.Oracle = predataTypeInfo.Oracle; cudataTypeInfo.Mysql = predataTypeInfo.Mysql; cudataTypeInfo.DB2 = predataTypeInfo.DB2; cudataTypeInfo.SqlServer = predataTypeInfo.SqlServer; cudataTypeInfo.Sqlite = predataTypeInfo.Sqlite; cudataTypeInfo.Access = predataTypeInfo.Access; cudataTypeInfo.CShort = predataTypeInfo.CShort; cudataTypeInfo.lstInfo = predataTypeInfo.lstInfo; predataTypeInfo.Gid = tmpdataTypeInfo.Gid; predataTypeInfo.Name = tmpdataTypeInfo.Name; predataTypeInfo.ChineseName = tmpdataTypeInfo.ChineseName; predataTypeInfo.Oracle = tmpdataTypeInfo.Oracle; predataTypeInfo.Mysql = tmpdataTypeInfo.Mysql; predataTypeInfo.DB2 = tmpdataTypeInfo.DB2; predataTypeInfo.SqlServer = tmpdataTypeInfo.SqlServer; predataTypeInfo.Sqlite = tmpdataTypeInfo.Sqlite; predataTypeInfo.Access = tmpdataTypeInfo.Access; predataTypeInfo.CShort = tmpdataTypeInfo.CShort; predataTypeInfo.lstInfo = tmpdataTypeInfo.lstInfo; // 更细XML内容 string cuXMLStr = xmlhelper.ReadInnerXML("datatype/item[@gid=\"" + cudataTypeInfo.Gid + "\"]"); string preXMLStr = xmlhelper.ReadInnerXML("datatype/item[@gid=\"" + predataTypeInfo.Gid + "\"]"); xmlhelper.Replace("datatype/item[@gid=\"" + cudataTypeInfo.Gid + "\"]", preXMLStr); xmlhelper.Replace("datatype/item[@gid=\"" + predataTypeInfo.Gid + "\"]", cuXMLStr); // 更新 gid var cuattribute = xmlhelper.Read("datatype/item[@gid=\"" + cudataTypeInfo.Gid + "\"]").Item(0).ParentNode.Attributes["gid"]; var preattribute = xmlhelper.Read("datatype/item[@gid=\"" + predataTypeInfo.Gid + "\"]").Item(0).ParentNode.Attributes["gid"]; cuattribute.Value = predataTypeInfo.Gid; preattribute.Value = cudataTypeInfo.Gid; xmlhelper.Save(false); gridView1.RefreshData(); gridView1.FocusedRowHandle = gridView1.FocusedRowHandle - 1; }