【问题标题】:gridview with xml datasource带有xml数据源的gridview
【发布时间】:2017-09-13 17:21:53
【问题描述】:

我是 asp.net 网络表单的新手。

我有 XML,如下所示。

<table>
  <row id="1" name="name1"/>
  <row id="2" name="name2"/>
  <row id="3" name="name3"/>
  <row id="4" name="name3"/>
  <row id="5" name="name3"/>
</table>

我想将此数据绑定到 asp:GridView。 但只命名部分 xml 而不是 Id。

我所做的就在这里,但还不是全部。 我什至不知道它是否正确。

protected void Page_Load(object sender, EventArgs e)
{
    var XmlPath = Server.MapPath("~/Data.xml");
    XmlDocument doc = new XmlDocument();
    doc.Load(XmlPath);

    DataTable dt = new DataTable();
    foreach (XmlNode xn in doc.ChildNodes[1])
    {
        string tagName = xn.Name;
        if (!dt.Columns.Contains(tagName))
        {
            dt.Columns.Add(tagName);
        }

    }
    DataRow dr = dt.NewRow();
    foreach (XmlNode xn in doc.ChildNodes[1])
    {
        dr[xn.Name] = xn.InnerText;
    }

    dt.Rows.Add(dr);

    GridView1.DataSource = dt;
    GridView1.DataBind();
}

例如,我还必须过滤数据。我只想打印 ID 为 2 和 4 的数据。

【问题讨论】:

    标签: c# asp.net xml gridview webforms


    【解决方案1】:

    你可以像这样使用LINQ to XML

    XDocument doc = XDocument.Load("~/Data.xml");
    
    var names = from r in doc.Descendants("row")
                 select (string)r.Attribute("name");
    
    GridView1.DataSource = names;
    GridView1.DataBind();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多