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"); } }}