xml读取+gridview多行表头实现
来源:互联网 发布:龙珠 布玛 悟空 知乎 编辑:程序博客网 时间:2024/06/06 06:29
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
public partial class PollutionSource_DetailPage_DischargeGas : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
if (((DataView)DischargeGasDB.Select()).Count == 0)
...{
ClientScript.RegisterStartupScript(GetType(), "", "<script>document.getElementById('hidden').style.display='none'</script>");
Response.Write("<font color='red'>数据不存在!</font>");
}
string type = "0";
if (((DataView)GetDataType.Select()).Count != 0)
...{
type = ((DataView)GetDataType.Select()).Table.Rows[0][0].ToString();
}
ClientScript.RegisterStartupScript(GetType(), "ShowDayByDataType", "<script>parent.IfShowMonthAndDay("" + type + "");</script>");
try
...{
GetXml(((DataView)DischargeGasDB.Select()).Table.Rows[0]["DifferSourceData"]);
GetXmlForGrid(((DataView)DischargeGasDB.Select()).Table);
}
catch
...{ }
}
//将单一的数据保存到Label中
public string GetXml(object xmlStr)
...{
string xmlstr = "";
if (LbHidden.Text != "")
...{
xmlstr = LbHidden.Text;
}
else if (LbHidden.Text == "")
xmlstr = "<?xml version='1.0' encoding='utf-8' ?><Datas>" + xmlStr.ToString() + "</Datas>";
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(xmlstr);
if (DifferSourceData.Items.Count == 0)
...{
ListItem objFirstItem = new ListItem();
objFirstItem.Text = "数据中心";
objFirstItem.Value = "0";
DifferSourceData.Items.Add(objFirstItem);
foreach (XmlNode node in XmlDoc.SelectSingleNode("//Datas").ChildNodes)
...{
ListItem objItem = new ListItem();
objItem.Text = node.Attributes["Desc"].Value;
objItem.Value = node.Attributes["Type"].Value;
objItem.Attributes.Add("DifferSourceData", node.OuterXml);
DifferSourceData.Items.Add(objItem);
}
LbHidden.Text = xmlstr;
}
return "";
}
//将多个数据的xml保存到label中
public string GetXmlForGrid(object xmlStr)
...{
string xmlstr = "";
DataTable dt =(DataTable)xmlStr;
if (LbHiddenGrid.Text != "")
...{
xmlstr = LbHiddenGrid.Text;
}
else if (LbHiddenGrid.Text == "")
...{
for (int i = 0; i < dt.Rows.Count; i++)
...{
XmlDocument xmldoc = new XmlDocument();
xmlstr += "<notes>" + dt.Rows[i]["DifferSource"].ToString() + "</notes>";
}
xmlstr = "<?xml version='1.0' encoding='utf-8' ?><Datas>" + xmlstr + "</Datas>";
}
LbHiddenGrid.Text = xmlstr;
return "";
}
//得到gridview被下拉后的回发返回的数据集
public DataTable GridViewBindByDDpSelectChange()
...{
string endxml = "";
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(LbHiddenGrid.Text);
foreach (XmlNode node in xmldoc.SelectSingleNode("//Datas").ChildNodes)
...{
if (node.ChildNodes.Count > 0)
...{
foreach (XmlNode ChildNode in node.ChildNodes)
...{
if (ChildNode.ChildNodes.Count > 0)
...{
if (ChildNode.Attributes["type"].Value.Trim() == DifferSourceData.SelectedValue.ToString())
...{
endxml += ChildNode.FirstChild.OuterXml;
}
}
}
}
}
endxml = "<Datas>" + endxml + "</Datas>";
DataSet ds = new DataSet();
ds.ReadXml(XmlReader.Create(new System.IO.StringReader(endxml)));
return ds.Tables[0];
}
//绑定数据
public void DifferSourceData_SelectedIndexChanged(object sender, EventArgs e)
...{
GridView GridView1 = (GridView)(PollutionForm.FindControl("GridView1"));
if (((DropDownList)sender).SelectedItem.Value.Trim() == "0" && PollutionForm.DataSourceID == "")
...{
PollutionForm.DataSourceID = "DischargeGasDB";
GridView1.DataSourceID = "DischargeGasDB";
return;
}
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(LbHidden.Text);
foreach (XmlNode childnode in xmlDoc.SelectSingleNode("//Datas").ChildNodes)
...{
if (childnode.Attributes["Type"].Value.Trim() == ((DropDownList)sender).SelectedValue.ToString().Trim())
...{
DataSet ds = new DataSet();
ds.ReadXml(XmlReader.Create(new System.IO.StringReader(childnode.FirstChild.OuterXml)));
PollutionForm.DataSourceID = "";
PollutionForm.DataSource = ds.Tables[0];
PollutionForm.DataBind();
break;
}
}
GridView1.DataSourceID = "";
GridView1.DataSource = GridViewBindByDDpSelectChange();
GridView1.DataBind();
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
...{
if (e.Row.RowType == DataControlRowType.Header)
...{
TableCellCollection tcl = e.Row.Cells;
//清除自动生成的表头
tcl.Clear();
//添加新的表头第一行
tcl.Add(new TableHeaderCell());
tcl[0].RowSpan = 3;
tcl[0].Text = "污染物名称";
tcl[0].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[1].RowSpan = 3;
tcl[1].Text = "产生量(吨)";
tcl[1].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[2].ColumnSpan = 4;
tcl[2].Text = "去除量(吨)";
tcl[2].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[3].ColumnSpan = 9;
tcl[3].Text = "排放量(吨)";
tcl[3].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[4].RowSpan = 3;
tcl[4].Text = "污染物排放标准值</th></tr><tr>";
tcl[4].Attributes.Add("bordercolor ", "#B4B1B1");
//第二行表头
tcl.Add(new TableHeaderCell());
tcl[5].RowSpan = 2;
tcl[5].Text = "合计";
tcl[5].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[6].RowSpan = 2;
tcl[6].Text = "其中新增设施";
tcl[6].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[7].RowSpan = 2;
tcl[7].Text = "其中燃烧废气";
tcl[7].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[8].RowSpan = 2;
tcl[8].Text = "其中工艺废气";
tcl[8].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[9].ColumnSpan = 3;
tcl[9].Text = "排放合计";
tcl[9].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[10].ColumnSpan = 3;
tcl[10].Text = "其中燃烧废气排放量";
tcl[10].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[11].ColumnSpan = 3;
tcl[11].Text = "其中工艺废气排放量</th></tr><tr>";
tcl[11].Attributes.Add("bordercolor ", "#B4B1B1");
//第三行表头
tcl.Add(new TableHeaderCell());
tcl[12].Text = "合计";
tcl[12].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[13].Text = "达标量";
tcl[13].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[14].Text = "超标量";
tcl[14].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[15].Text = "合计";
tcl[15].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[16].Text = "达标量";
tcl[16].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[17].Text = "超标量";
tcl[17].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[18].Text = "合计";
tcl[18].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[19].Text = "达标量";
tcl[19].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[20].Text = "超标量";
tcl[20].Attributes.Add("bordercolor ", "#B4B1B1");
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
public partial class PollutionSource_DetailPage_DischargeGas : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
if (((DataView)DischargeGasDB.Select()).Count == 0)
...{
ClientScript.RegisterStartupScript(GetType(), "", "<script>document.getElementById('hidden').style.display='none'</script>");
Response.Write("<font color='red'>数据不存在!</font>");
}
string type = "0";
if (((DataView)GetDataType.Select()).Count != 0)
...{
type = ((DataView)GetDataType.Select()).Table.Rows[0][0].ToString();
}
ClientScript.RegisterStartupScript(GetType(), "ShowDayByDataType", "<script>parent.IfShowMonthAndDay("" + type + "");</script>");
try
...{
GetXml(((DataView)DischargeGasDB.Select()).Table.Rows[0]["DifferSourceData"]);
GetXmlForGrid(((DataView)DischargeGasDB.Select()).Table);
}
catch
...{ }
}
//将单一的数据保存到Label中
public string GetXml(object xmlStr)
...{
string xmlstr = "";
if (LbHidden.Text != "")
...{
xmlstr = LbHidden.Text;
}
else if (LbHidden.Text == "")
xmlstr = "<?xml version='1.0' encoding='utf-8' ?><Datas>" + xmlStr.ToString() + "</Datas>";
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(xmlstr);
if (DifferSourceData.Items.Count == 0)
...{
ListItem objFirstItem = new ListItem();
objFirstItem.Text = "数据中心";
objFirstItem.Value = "0";
DifferSourceData.Items.Add(objFirstItem);
foreach (XmlNode node in XmlDoc.SelectSingleNode("//Datas").ChildNodes)
...{
ListItem objItem = new ListItem();
objItem.Text = node.Attributes["Desc"].Value;
objItem.Value = node.Attributes["Type"].Value;
objItem.Attributes.Add("DifferSourceData", node.OuterXml);
DifferSourceData.Items.Add(objItem);
}
LbHidden.Text = xmlstr;
}
return "";
}
//将多个数据的xml保存到label中
public string GetXmlForGrid(object xmlStr)
...{
string xmlstr = "";
DataTable dt =(DataTable)xmlStr;
if (LbHiddenGrid.Text != "")
...{
xmlstr = LbHiddenGrid.Text;
}
else if (LbHiddenGrid.Text == "")
...{
for (int i = 0; i < dt.Rows.Count; i++)
...{
XmlDocument xmldoc = new XmlDocument();
xmlstr += "<notes>" + dt.Rows[i]["DifferSource"].ToString() + "</notes>";
}
xmlstr = "<?xml version='1.0' encoding='utf-8' ?><Datas>" + xmlstr + "</Datas>";
}
LbHiddenGrid.Text = xmlstr;
return "";
}
//得到gridview被下拉后的回发返回的数据集
public DataTable GridViewBindByDDpSelectChange()
...{
string endxml = "";
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(LbHiddenGrid.Text);
foreach (XmlNode node in xmldoc.SelectSingleNode("//Datas").ChildNodes)
...{
if (node.ChildNodes.Count > 0)
...{
foreach (XmlNode ChildNode in node.ChildNodes)
...{
if (ChildNode.ChildNodes.Count > 0)
...{
if (ChildNode.Attributes["type"].Value.Trim() == DifferSourceData.SelectedValue.ToString())
...{
endxml += ChildNode.FirstChild.OuterXml;
}
}
}
}
}
endxml = "<Datas>" + endxml + "</Datas>";
DataSet ds = new DataSet();
ds.ReadXml(XmlReader.Create(new System.IO.StringReader(endxml)));
return ds.Tables[0];
}
//绑定数据
public void DifferSourceData_SelectedIndexChanged(object sender, EventArgs e)
...{
GridView GridView1 = (GridView)(PollutionForm.FindControl("GridView1"));
if (((DropDownList)sender).SelectedItem.Value.Trim() == "0" && PollutionForm.DataSourceID == "")
...{
PollutionForm.DataSourceID = "DischargeGasDB";
GridView1.DataSourceID = "DischargeGasDB";
return;
}
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(LbHidden.Text);
foreach (XmlNode childnode in xmlDoc.SelectSingleNode("//Datas").ChildNodes)
...{
if (childnode.Attributes["Type"].Value.Trim() == ((DropDownList)sender).SelectedValue.ToString().Trim())
...{
DataSet ds = new DataSet();
ds.ReadXml(XmlReader.Create(new System.IO.StringReader(childnode.FirstChild.OuterXml)));
PollutionForm.DataSourceID = "";
PollutionForm.DataSource = ds.Tables[0];
PollutionForm.DataBind();
break;
}
}
GridView1.DataSourceID = "";
GridView1.DataSource = GridViewBindByDDpSelectChange();
GridView1.DataBind();
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
...{
if (e.Row.RowType == DataControlRowType.Header)
...{
TableCellCollection tcl = e.Row.Cells;
//清除自动生成的表头
tcl.Clear();
//添加新的表头第一行
tcl.Add(new TableHeaderCell());
tcl[0].RowSpan = 3;
tcl[0].Text = "污染物名称";
tcl[0].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[1].RowSpan = 3;
tcl[1].Text = "产生量(吨)";
tcl[1].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[2].ColumnSpan = 4;
tcl[2].Text = "去除量(吨)";
tcl[2].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[3].ColumnSpan = 9;
tcl[3].Text = "排放量(吨)";
tcl[3].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[4].RowSpan = 3;
tcl[4].Text = "污染物排放标准值</th></tr><tr>";
tcl[4].Attributes.Add("bordercolor ", "#B4B1B1");
//第二行表头
tcl.Add(new TableHeaderCell());
tcl[5].RowSpan = 2;
tcl[5].Text = "合计";
tcl[5].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[6].RowSpan = 2;
tcl[6].Text = "其中新增设施";
tcl[6].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[7].RowSpan = 2;
tcl[7].Text = "其中燃烧废气";
tcl[7].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[8].RowSpan = 2;
tcl[8].Text = "其中工艺废气";
tcl[8].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[9].ColumnSpan = 3;
tcl[9].Text = "排放合计";
tcl[9].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[10].ColumnSpan = 3;
tcl[10].Text = "其中燃烧废气排放量";
tcl[10].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[11].ColumnSpan = 3;
tcl[11].Text = "其中工艺废气排放量</th></tr><tr>";
tcl[11].Attributes.Add("bordercolor ", "#B4B1B1");
//第三行表头
tcl.Add(new TableHeaderCell());
tcl[12].Text = "合计";
tcl[12].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[13].Text = "达标量";
tcl[13].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[14].Text = "超标量";
tcl[14].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[15].Text = "合计";
tcl[15].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[16].Text = "达标量";
tcl[16].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[17].Text = "超标量";
tcl[17].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[18].Text = "合计";
tcl[18].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[19].Text = "达标量";
tcl[19].Attributes.Add("bordercolor ", "#B4B1B1");
tcl.Add(new TableHeaderCell());
tcl[20].Text = "超标量";
tcl[20].Attributes.Add("bordercolor ", "#B4B1B1");
}
}
}
- xml读取+gridview多行表头实现
- GridView实现多表头
- asp.net GridView多行表头的实现,合并表头
- GridView多行合并表头的实现
- GRIDVIEW多行表头的实现
- GridView多行表头的实现
- gridview多行表头
- GridView多行表头
- GridView多行表头
- 【原创】GridView实现多表头
- 实现GridView多表头,表头合并,表头分组,多行支持,使用中发现问题告诉我。
- asp.net GridView多行表头的实现
- GridView多行表头的实现<转>
- gridview 添加多行表头
- GridView多行表头合并
- GridView多行表头合并
- GridView多行表头合并
- GridView多行表头合并
- java Properties 类新手上路
- 用VC++实现ODBC数据源设置(转)
- .Net 中 C/S架构软件的一种分层方式
- PB程序移植后的ASA数据库连接问题
- javascript对话框三种方法
- xml读取+gridview多行表头实现
- Tomcat5.5.14+MSSQL2000部署JBPM3.2.1 DEMO
- 收集的一些专业网址
- 原创X Joke
- How to enable Apache, OC4J and OPMN logging in Oracle Applications R12
- 开始读《Data Structures and the Java Collections Framework》
- 写了个15位身份证号升级为18位的SQL语句
- [基础] 什么是存储器映射?
- 找不到文件或程序集名称“CrystalDecisions.Shared”,或找不到它的一个依赖项