private void textEdit1_KeyDown(object sender, KeyEventArgs e)
{
string path = Application.StartupPath + "\\" + this.textEdit2.Text.Trim();
if (e.KeyCode == Keys.Enter)
{
if (!File.Exists(path))
{
XtraMessageBox.Show("未找相应的文件", "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
XElement xele = XElement.Load(path);
/*var query = from toolbox in xele.Elements()
select toolbox;
var query1 = from table in query
where table.Value.Contains(this.textEdit1.Text.Trim())
|| table.Value.Contains(this.textEdit1.Text.Trim())
select table;*/
IEnumerable<XElement> query1 =
from table in xele.Nodes().OfType<XElement>()
where table.Value.Contains(this.textEdit1.Text.Trim())
select table;
using (DataTable dt = new DataTable())
{
DataColumn dc = null;
DataRow newRow;
//dt.Columns.Clear();
//dt.Rows.Clear();
dt.Clear();
foreach (XElement item in query1.Nodes())
{
String columns = item.Name.ToString();
if (!dt.Columns.Contains(columns))
{
//XAttribute alias = item.Attribute(columns);
dc = dt.Columns.Add(columns, Type.GetType("System.String"));
}
}
foreach (XElement item in query1)
{
newRow = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
String col = dt.Columns[i].ToString();
newRow[col] = item.Element(col).Value;
}
dt.Rows.Add(newRow);
}
this.grvlist.Columns.Clear();
this.grvlist.KeyDown -= grvlist_KeyDown;
if (dt.Rows.Count > 0)
{
gclist.DataSource = dt;
this.grvlist.Focus();
this.grvlist.KeyDown += grvlist_KeyDown;
}
else
{
gclist.DataSource = null;
}
}
}
}