栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 人工智能 > NLP

xml学习(5)xml配置gridview列

NLP 更新时间:发布时间: 百科书网 趣学号
有时候我们不确定我们gridview要显示那些列,或者我们希望可以动态配置gridview那些列显示,以及宽度,这时可以通过可以把列的消息存放的数据库,通过读取数据库实现动态绑定列,也可以通过配置xml实现,当然也可以第一次通过读取xml,然后向数据库插入列消息,然后下一次判断数据库是否已经存储了列数据,如果没有存入,那么读取xml。

下面我讲解如何通过xml如何动态绑定gridview

一效果:

二,核心代码:

1.读取xml文件,返回datatable

    ///         /// 获取xmltable        ///         /// xml名字        ///         public DataTable getDTXML(string xmlname)        {            DataTable result = new DataTable();            string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\xml\" + xmlname + ".xml";//xml的物理路径            Xmldocument xmlDoc = new Xmldocument();            xmlDoc.Load(fileName);            XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");            foreach (XmlNode xOracleNode in xWitsTablesList)            {                foreach (XmlNode node2 in xOracleNode.ChildNodes)                {                    if (node2.Name == "Header")                    {                        //   //绑定表头                        foreach (XmlNode node3 in node2.Attributes)                        {                            result.Columns.Add(node3.Value);                        }                    }                    else                    {                        //数据行                        int i = 0;//列标志                        DataRow dr = result.NewRow();                        foreach (XmlNode node4 in node2.Attributes)                        {                            dr[i] = node4.Value.ToString();                            i++;                        }                        result.Rows.Add(dr);                    }                }            }            return result;        }


2.绑定gridview列

    ///     /// 绑定gridview列    ///     ///     ///     ///     ///     public void HtmlGridView(GridView gv,DataTable dt,int width,int columnNumber)    {        try        {            int k=0;            if (dt.Rows.Count > 0)            {                foreach (DataRow dr in dt.Rows)                {                    BoundField bf = new BoundField();                    bf.HeaderText = dr["name"].ToString();                    bf.DataField = dr["field_code"].ToString();                    bf.HeaderStyle.Width = Convert.ToInt32(dr["width"].ToString());                    bf.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;                    bf.HeaderStyle.ForeColor = System.Drawing.Color.Black;                    bf.Sortexpression = dr["name"].ToString();                    gv.Columns.Add(bf);                    k+= Convert.ToInt32(dr["width"].ToString());                    if (dr["width"].ToString()=="0")                    {                        gv.Columns[columnNumber].Visible = false;                    }                    columnNumber++;                }                gv.Width = k + width;            }         }        catch(Exception ex)        {            throw new Exception(ex.Message);        }    }


三,下面是全部源码:

HtmlGridView.aspx源码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HtmlGridView.aspx.cs" Inherits="HtmlGridView" %>    读取xml                

<%#eval("NO") %>


HtmlGridView.aspx.cs源码:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;using System.Xml;using System.Web.UI.HtmlControls;using IsXMLUtility;using System.Data;public partial class HtmlGridView : System.Web.UI.Page{    XmlHelper xmlHelper = new XmlHelper();    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            //gv_class绑定列            DataTable dt = xmlHelper.getDTXML("表头");            Functions.getInstance().HtmlGridView(gv_class, dt, 10, 1);            InitGV();        }    }    ///     /// 绑定gridview    ///     private void InitGV()    {        DataTable dt = xmlHelper.getDTXML("内容", "NO", 1);        this.gv_class.DataSource = dt.DefaultView;        this.gv_class.DataBind();    }}


表头.xml

    

内容.xml

  


xmlReadOne.css

body{margin:0 auto;padding:0px;font-family:'宋体';}.main{     margin-left:20px;     margin-top:10px;     text-align:left;    }    .button{    width:600px;    border:#A8B7CC solid 1px;background-color:#FFFFFF;    }.content{    width:600px;    border:#A8B7CC solid 1px;background-color:#E0EDFE;    margin-top:20px; } .list{    width:600px;    height:300px;    overflow:auto;    border:#A8B7CC solid 1px;background-color:#FFFFFF;overflow: scroll;SCROLLBAR-FACE-COLOR:#E0EDFE;PADDING-BOTTOM: 0px;SCROLLBAR-HIGHLIGHT-COLOR: #ffffff;SCROLLBAR-SHADOW-COLOR: #cccccc;SCROLLBAR-3DLIGHT-COLOR:#ffffff;SCROLLBAR-ARROW-COLOR:#95AFD4;PADDING-TOP: 0px;SCROLLBAR-TRACK-COLOR: #ffffff;SCROLLBAR-DARKSHADOW-COLOR: #ffffff;LETTER-SPACING: 1pt;    margin-top:20px; }  .gv{width:600px;height:400px;margin-top:20px;border:#A8B7CC solid 1px;background-color:#FFFFFF;overflow: scroll;SCROLLBAR-FACE-COLOR:#E0EDFE;PADDING-BOTTOM: 0px;SCROLLBAR-HIGHLIGHT-COLOR: #ffffff;SCROLLBAR-SHADOW-COLOR: #cccccc;SCROLLBAR-3DLIGHT-COLOR:#ffffff;SCROLLBAR-ARROW-COLOR:#95AFD4;PADDING-TOP: 0px;SCROLLBAR-TRACK-COLOR: #ffffff;SCROLLBAR-DARKSHADOW-COLOR: #ffffff;LETTER-SPACING: 1pt;}


Functions.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Web.UI.WebControls;/// ///Server 的摘要说明/// public class Functions{    private static object _synRoot=new object();    private static Functions _instance=null;    private Functions(){////TODO: 在此处添加构造函数逻辑//}    public static Functions getInstance()    {        lock (_synRoot)        {            if (_instance == null)            {                _instance = new Functions();            }        }        return _instance;    }    #region 业务层    ///     /// 绑定gridview列    ///     ///     ///     ///     ///     public void HtmlGridView(GridView gv,DataTable dt,int width,int columnNumber)    {        try        {            int k=0;            if (dt.Rows.Count > 0)            {                foreach (DataRow dr in dt.Rows)                {                    BoundField bf = new BoundField();                    bf.HeaderText = dr["name"].ToString();                    bf.DataField = dr["field_code"].ToString();                    bf.HeaderStyle.Width = Convert.ToInt32(dr["width"].ToString());                    bf.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;                    bf.HeaderStyle.ForeColor = System.Drawing.Color.Black;                    bf.Sortexpression = dr["name"].ToString();                    gv.Columns.Add(bf);                    k+= Convert.ToInt32(dr["width"].ToString());                    if (dr["width"].ToString()=="0")                    {                        gv.Columns[columnNumber].Visible = false;                    }                    columnNumber++;                }                gv.Width = k + width;            }         }        catch(Exception ex)        {            throw new Exception(ex.Message);        }    }    #endregion}


XmlHelper.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Xml;using System.IO;using System.Web.UI;using System.Web.UI.WebControls;namespace IsXMLUtility{       ///     ///XmlHelper 的摘要说明    ///     public class XmlHelper    {        private string rtnXml;        public XmlHelper()        {            //            //TODO: 在此处添加构造函数逻辑            //            rtnXml = string.Empty;        }        ///         /// 获取xmltable        ///         /// xml名字        ///         public DataTable getDTXML(string xmlname)        {            DataTable result = new DataTable();            string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\xml\" + xmlname + ".xml";//xml的物理路径            Xmldocument xmlDoc = new Xmldocument();            xmlDoc.Load(fileName);            XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");            foreach (XmlNode xOracleNode in xWitsTablesList)            {                foreach (XmlNode node2 in xOracleNode.ChildNodes)                {                    if (node2.Name == "Header")                    {                        //   //绑定表头                        foreach (XmlNode node3 in node2.Attributes)                        {                            result.Columns.Add(node3.Value);                        }                    }                    else                    {                        //数据行                        int i = 0;//列标志                        DataRow dr = result.NewRow();                        foreach (XmlNode node4 in node2.Attributes)                        {                            dr[i] = node4.Value.ToString();                            i++;                        }                        result.Rows.Add(dr);                    }                }            }            return result;        }        ///         ///         ///         /// xml名字        /// 序号列名字        /// 序号开始编号        ///         public DataTable getDTXML(string xmlname, string Header, int colsNumber)        {            DataTable result = new DataTable();            if (Header == "")                Header = "N0";            if (colsNumber < 0)                colsNumber = 1;            result.Columns.Add(Header);            string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\xml\" + xmlname + ".xml";//xml的物理路径            Xmldocument xmlDoc = new Xmldocument();            xmlDoc.Load(fileName);            XmlNodeList xWitsTablesList = xmlDoc.SelectNodes("/config");            foreach (XmlNode xOracleNode in xWitsTablesList)            {                foreach (XmlNode node2 in xOracleNode.ChildNodes)                {                    if (node2.Name == "Header")                    {                        //绑定表头                        foreach (XmlNode node3 in node2.Attributes)                        {                            result.Columns.Add(node3.Value);                        }                    }                    else                    {                        //数据行                        int i = 1;//列标志                        DataRow dr = result.NewRow();                        dr[0] = colsNumber;                        foreach (XmlNode node4 in node2.Attributes)                        {                            dr[i] = node4.Value.ToString();                            i++;                        }                        colsNumber++;                        result.Rows.Add(dr);                    }                }            }            return result;        }     }}

以上就是xml学习(5)xml配置gridview列的内容,更多相关内容请关注PHP中文网(www.iotsi.net)!

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/794778.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号