 |
|
จะเพิ่ม parent node ลงในไฟล์ xml ที่มีอยู่แล้วทำได้ไหมครับ |
|
 |
|
|
 |
 |
|
เอาไปดัดแปลงดู
ส่ง datatable แล้ว write เป็น xml
public static void Write(string xmlPath, string tagName, DataTable dtData)
{
if (File.Exists(xmlPath))
{
File.Delete(xmlPath);
}
XmlTextWriter writer = new System.Xml.XmlTextWriter(xmlPath, System.Text.Encoding.UTF8);
writer.WriteStartDocument();
writer.WriteStartElement("dataroot");
writer.WriteAttributeString("xmlns", "od", null, "urn:schemas-microsoft-com:officedata");
writer.WriteAttributeString("generated", DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"));
writer.Indentation = 0;
writer.Formatting = Formatting.Indented;
foreach (DataRow dr in dtData.Rows)
{
writer.WriteStartElement(tagName);
foreach (DataColumn dc in dtData.Columns)
{
if (dc.DataType == typeof(DateTime))
{
writer.WriteElementString(dc.ColumnName, (dr[dc.ColumnName] != DBNull.Value) ? dr.Field<DateTime>(dc.ColumnName).ToShortDateString() : string.Empty);
}
else
{
writer.WriteElementString(dc.ColumnName, (dr[dc.ColumnName] != null) ? dr[dc.ColumnName].ToString() : string.Empty);
}
}
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
if (writer != null)
{
writer.Flush();
}
if (writer.WriteState != WriteState.Closed)
{
writer.Close();
}
}
|
 |
 |
 |
 |
Date :
2014-06-05 15:59:38 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 3 เขียนโดย : ห้ามตอบเกินวันละ 2 กระทู้ เมื่อวันที่ 2014-06-06 08:52:05
รายละเอียดของการตอบ ::
แต่ถ้าสร้าง xml แนะนำว่าใช้วิธี xml writer เร็วกว่านะ
เห็นด้วยครับ
ไม่มีเพื่อนคิด (ทันกัน) มันก็เหนื่อยเหมือนกันครับ (พึ่งทำได้แต่ผมติดตรงนี้มา 3 วันแล้ว) เสียเวลาฉิบ ห า ย
***** Dim lstDyn = Enumerable.Cast(Of Object)(Me._DataModel)
คิดลึกลึกคิด มันมีประโยชน์และไม่มีประโยชน์ในตัวมันเองครับ
หลักการ ผมจะไม่เขียนโค๊ดซ้ำถ้ามันเป็นสิ่งเดียวกัน อทิเช่น
Code (VB.NET)
Public Class my_GridView_Generic
Inherits GridView
...
...
Protected Overrides Sub OnSorting(e As System.Web.UI.WebControls.GridViewSortEventArgs)
If Not e.SortExpression.Equals(String.Empty) Then
ViewState("SortDirection") = If(ViewState("SortDirection") = Nothing OrElse
ViewState("SortDirection").Equals("") OrElse
ViewState("SortDirection") = "0", "1", "0")
Me._DataModel = SortColumnByLamda(e.SortExpression, ViewState("SortDirection"))
Me.DataSource = Me._DataModel 'DirectCast(Me._DataModel, List(Of Any type))
Me.DataBind()
Me.HeaderRow.Cells(Me.GetColumnIndex(e.SortExpression)).CssClass = If(ViewState("SortDirection") = "0",
"sortasc-header", "sortdesc-header")
'MyBase.OnSorting(e)
End If
End Sub
Private Function SortColumnByLamda(ByVal colName As String, ByVal sortDirection As String) As Object
Dim lstDyn = Enumerable.Cast(Of Object)(Me._DataModel)
If sortDirection = "1" Then 'Descending
lstDyn = lstDyn.OrderByDescending(Function(c) c.GetType().InvokeMember(colName, BindingFlags.GetProperty, Nothing, c, Nothing)).ToList()
Else
lstDyn = lstDyn.OrderBy(Function(c) c.GetType().InvokeMember(colName, BindingFlags.GetProperty, Nothing, c, Nothing)).ToList()
End If
Return lstDyn
End Function
End Class
เหลือเฟือและใช้งานได้ดีระดับหนึ่ง (ถ้ามีเวลาก็จะปรับปรุงแก้ไขให้ดีกว่าเดิม)
|
 |
 |
 |
 |
Date :
2014-06-06 10:54:39 |
By :
^ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|