• 用LINQ查询XML并绑定给GridView显示


    转载自  http://www.wyjexplorer.cn/Blog/View/A723254D5450AC35.html

    前天嘴贱,建议老Y用XML存一个表格然后绑给GridView,本意是用个偷懒的办法快速解决了那个case,结果做的时候没那么方便,或者说直接把GridView绑定到一个XML文件不太好,如果通过DataTable来处理也显得比较麻烦。

    比较好的办法其实是绑给业务对象,就和以前ORM一样做,GridView最终绑的是一个List<数据Model>。那么怎么来读取XML呢最方便呢?当然是用LINQ!可以参考我博客上的这篇文章:http://www.wyjexplorer.cn/Blog/View/EC3073A1BDFB9D90.html

    今天抽出来单独写了一个Demo示众,3步搞定!

    1.搞个XML文件:

    <?xml version="1.0" encoding="utf-8" ?>
    <Contacts>
        <Person>
            <Id>1</Id>
            <Name>Fucker</Name>
            <Mobile>13838389438</Mobile>
            <Address>No.250, Fucking Road</Address>
        </Person>
        <Person>
            <Id>2</Id>
            <Name>Dick</Name>
            <Mobile>1234567890123</Mobile>
            <Address>No.13, 2B Road, Shit City</Address>
        </Person>
        <Person>
            <Id>3</Id>
            <Name>Shitter</Name>
            <Mobile>987654321098</Mobile>
            <Address>No.38, SB Street</Address>
        </Person>
    </Contacts>

     

    2.给他创建一个数据模型类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    /// <summary>
    /// Summary description for Person
    /// </summary>
    namespace LinqXMLGridViewDemo
    {
        public class Person
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Mobile { get; set; }
            public string Address { get; set; }

            public Person()
            {
                //
                // TODO: Add constructor logic here
                //
            }
        }
    }

     

    3. 页面上拖个GridView,后台代码这样写:

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Xml.Linq;
    using LinqXMLGridViewDemo;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var query = GetXMLData();

            gvContact.DataSource = query;
            gvContact.DataBind();
        }

        private List<Person> GetXMLData()
        {
            var xDoc = XDocument.Load(Server.MapPath("~/App_Data/Data.xml"));
            var query = (from person in xDoc.Descendants("Person")
                         select new Person()
                         {
                             Id = Convert.ToInt32(person.Element("Id").Value),
                             Name = person.Element("Name").Value,
                             Mobile = person.Element("Mobile").Value,
                             Address = person.Element("Address").Value
                         }).ToList();
            return query;
        }

    }

    有图有真相: 

    image

    碉堡了~

  • 相关阅读:
    leetcode------Sum Root to Leaf Numbers
    TesserOCR训练
    【转载】C#.Net 创建网页快捷方式
    错误:没有为扩展名“.html”注册的生成提供程序。
    【转载】错误 CS0016: 未能写入输出文件“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/.........dll”--“拒绝访问。 ”
    [转载]ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结
    [转载]ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结
    [转载]AFX_MANAGE_STATE关于资源切换
    OD鲜为人知的小技巧--搜索通配符(关键字)
    【转载】汇编跳转指令集
  • 原文地址:https://www.cnblogs.com/iceicebaby/p/2365097.html
Copyright © 2020-2023  润新知