首先我调用了WebServices,返回的结果XML字符串。然后我再使用DataGrid嵌套来实现XML数据的显示。但是奇怪的是一旦用户访问到这个页面,网络就堵塞了(ping 服务器有300ms,随着访问用户的增加,延时也会增加,有时还会延时。),但是如果没有用户访问这个页面,网络就正常了(延时只有7ms)。请高手帮忙想想这是什么问题造成的?
后来我怀疑是调用WebServices造成的,所以就直接访问一个XML文件,可问题依然存在。
下面是我写的代码,请高手帮忙看看,有什么问题?
后来我怀疑是调用WebServices造成的,所以就直接访问一个XML文件,可问题依然存在。
下面是我写的代码,请高手帮忙看看,有什么问题?
解决方案 »
- 关于EXCEL导入ORACLE10
- 我来问个简单的问题,关于DataList和GridView的问题
- 购物车源代码!最好是有完整的项目!!
- 关于上传下载文件路径的问题
- 我的网站被攻击了,大家帮我看看
- 主页面分成三部分,TopFrame,LeftFrame,RightFrame,我想在RightFrame里的页面单击一个按钮刷新LeftFrame里的页面
- 如何获取datagrid里面行的数据?
- !!!!!!!!!!!!!!!!!!!!!怎样在客户端弹出警告框!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
- 想学asp.net不知从哪开始
- 这样一个网站请帮忙评评值多少钱?
- shtml+xml+xsl问题
- 再开帖子,请高手帮忙,问题还是没有解决
<%@ Register TagPrefix="uc1" TagName="TinyQryFlight" Src="TinyQryFlight.ascx" %>
<%@ OutputCache Duration="120" VaryByParam="*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>航班查询结果</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="../style.css" type="text/css" rel="stylesheet">
<SCRIPT language="JavaScript" src="../JS/MyJs.js"></SCRIPT>
</HEAD>
<body topMargin="0">
<form id="formSingle" method="post" runat="server">
<uc1:TinyQryFlight id="TinyQryFlight1" runat="server"></uc1:TinyQryFlight>
<table cellSpacing="0" cellPadding="0" width="680" align="center" border="0">
<tr>
<td><IMG height="29" src="../Images/FlightResult.gif" width="200"></td>
</tr>
<tr bgColor="#cde5e7">
<td height="24"><strong>航线:
<asp:label id="lblFromCity" runat="server"></asp:label>到<asp:label id="lblToCity" runat="server"></asp:label>;
航班日期:<asp:label id="lblDepDate" runat="server"></asp:label>(去程查询结果)</strong>
</td>
</tr>
<tr>
<td height="24"><strong>起飞机场:<asp:label id="lblFromAirPort" runat="server"></asp:label></strong></td>
</tr>
<tr>
<td height="24"><strong>到达机场:<asp:label id="lblToAirPort" runat="server"></asp:label></strong></td>
</tr>
<tr>
<td height="24"><strong>燃油附加费:<asp:label id="lblYQ" runat="server"></asp:label>
元(注意:2006年4月20号起燃油附加费新规定:800公里(含800公里)以上成人收60元儿童收30元,800公里以下成人收30元儿童20元,婴儿免收燃油附加费)</strong></td>
</tr>
</table>
<asp:datagrid id="dgParent" runat="server" HorizontalAlign="Center" Width="680px" AutoGenerateColumns="False"
BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4">
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="航班(机型)">
<HeaderStyle HorizontalAlign="Center" Width="20%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Flight") %>
(机型:<%# DataBinder.Eval(Container.DataItem, "Model") %>)
<br>
<%# DataBinder.Eval(Container.DataItem, "AirCompany") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="起飞时间/到达时间">
<HeaderStyle HorizontalAlign="Center" Width="17%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
起飞时间:<%# DataBinder.Eval(Container.DataItem, "FlyTime") %>
<br>
到达时间:<%# DataBinder.Eval(Container.DataItem, "ArrivalTime") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="机场建设费">
<HeaderStyle HorizontalAlign="Center" Width="11%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Tax") %>
元
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="舱位明细">
<HeaderStyle HorizontalAlign="Center" Width="52%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:DataGrid ID="dgChild" runat="server" AutoGenerateColumns="False" Width="100%">
<Columns>
<asp:TemplateColumn HeaderText="舱位">
<HeaderStyle HorizontalAlign="Center" Width="15%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ClassCode") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="折扣">
<HeaderStyle HorizontalAlign="Center" Width="15%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Code") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="剩余张数">
<HeaderStyle HorizontalAlign="Center" Width="15%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Num") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="票价">
<HeaderStyle HorizontalAlign="Center" Width="15%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Price") %>
元
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="操作">
<HeaderStyle HorizontalAlign="Center" Width="60%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<input type=radio value='<%# DataBinder.Eval(Container.DataItem, "ClassInfo") %>' name=DepSeat><font color="red">选择该座位</font>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
<table cellSpacing="0" cellPadding="0" width="680" align="center" border="0">
<tr>
<td align="right"><INPUT id="SingleSubmit" type="submit" value="我要订票" name="SingleSubmit" runat="server"
onclick="return ChkSingleRadio()"></td>
</tr>
</table>
</form>
</body>
</HTML>
using System.Data;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Xml;
using TPSP.Common;
using TPSP.IBE;namespace TPSP.Flight
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class FlightResult : BasePage
{
protected Label lblFromCity;
protected Label lblToCity;
protected Label lblDepDate;
protected Label lblFromAirPort;
protected Label lblToAirPort;
protected Label lblYQ;
protected HtmlInputButton SingleSubmit;
protected DataGrid dgParent;
protected XmlDocument doc;
private void Page_Load(object sender, EventArgs e)
{
doc = new XmlDocument();
if (!Page.IsPostBack)
{
if (Session["CmdDep"] != null)
{
try
{
string SingleLine = new IEtermservice().Qry(Funs.FormatAvCmd("CKG230", Session["CmdDep"].ToString()));
//doc.Load(Server.MapPath("XXX.xml"));
doc.LoadXml(SingleLine);
DataSet ds=new DataSet();
XmlNodeList nsHead = doc.SelectNodes("//Head");
lblFromCity.Text = nsHead[0].ChildNodes[0].InnerText;
lblToCity.Text = nsHead[0].ChildNodes[2].InnerText;
lblDepDate.Text = EtermToDate(Session["CmdDep"].ToString().Substring(Session["CmdDep"].ToString().Length - 7, 7), "年", "月", "日") + nsHead[0].ChildNodes[4].InnerText;
lblFromAirPort.Text = nsHead[0].ChildNodes[1].InnerText;
lblToAirPort.Text = nsHead[0].ChildNodes[3].InnerText;
lblYQ.Text = nsHead[0].ChildNodes[5].InnerText;
XmlNodeList ns = doc.SelectNodes("//Detail");
DataTable table = new DataTable("ParentTable");
DataColumn column;
DataRow row; column = new DataColumn();
column.DataType = Type.GetType("System.Int32");
column.ColumnName = "id";
column.ReadOnly = true;
column.Unique = true;
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Flight";
column.AutoIncrement = false;
column.Caption = "Flight";
column.ReadOnly = true;
column.Unique = false;
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "AirCompany";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Model";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "FlyTime";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "ArrivalTime";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Tax";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "YPrice";
table.Columns.Add(column); DataColumn[] PrimaryKeyColumns = new DataColumn[1];
PrimaryKeyColumns[0] = table.Columns["id"];
table.PrimaryKey = PrimaryKeyColumns; for (int i = 0; i < ns.Count; i++)
{
row = table.NewRow();
row["id"] = i;
row["Flight"] = ns[i].ChildNodes[1].InnerText;
row["AirCompany"] = ns[i].ChildNodes[0].InnerText;
row["Model"] = ns[i].ChildNodes[2].InnerText;
row["FlyTime"] = ns[i].ChildNodes[3].InnerText;
row["ArrivalTime"] = ns[i].ChildNodes[4].InnerText;
row["Tax"] = ns[i].ChildNodes[6].InnerText;
row["YPrice"] = ns[i].ChildNodes[7].InnerText;
table.Rows.Add(row);
} dgParent.DataSource = table;
dgParent.DataBind();
}
catch
{
Dialog.ShowAlertMsg("航班查询失败,请重新查询!");
Dialog.PageRedirect("AirTicket.aspx", 2);
}
}
}
} private void dgParent_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView) e.Item.DataItem; string strFlight = drv.Row["Flight"].ToString();
string strFlyTime = drv.Row["FlyTime"].ToString();
string strArrivalTime = drv.Row["ArrivalTime"].ToString();
string strTax = drv.Row["Tax"].ToString();
string strYPrice = drv.Row["YPrice"].ToString();
string strCmdDep = Session["CmdDep"].ToString(); XmlNodeList ns = doc.SelectNodes("//Detail[Flight='" + strFlight + "']/Class");
DataTable table = new DataTable("ChildTable");
DataColumn column;
DataRow row;
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "ClassCode";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Code";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Num";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Price";
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "ClassInfo";
table.Columns.Add(column);
for (int i = 0; i < ns.Count; i++)
{
row = table.NewRow(); row["ClassCode"] = ns[i].ChildNodes[0].InnerText;
row["Code"] = ns[i].ChildNodes[1].InnerText;
row["Num"] = ns[i].ChildNodes[2].InnerText;
string strNum = ns[i].ChildNodes[2].InnerText;
if (strNum == ">9张")
strNum = "10";
else
strNum = strNum.Substring(0, 1);
row["Price"] = ns[i].ChildNodes[3].InnerText;
//CA4137,F,29JUL05,CKGPEK,0840,1045,2340,重庆,北京,2005年7月29日星期五,E,9,头等舱,50,1560,40
row["ClassInfo"] = strFlight + "," +
ns[i].ChildNodes[0].InnerText + "," + //舱位代码
strCmdDep.Substring(strCmdDep.Length - 7, 7) + "," + //格式化后的起飞时间
strCmdDep.Substring(0, 6) + "," + //英文城市对
strFlyTime + "," + //起飞时间
strArrivalTime + "," + //到达时间
ns[i].ChildNodes[3].InnerText + "," + //票价
lblFromCity.Text + "," + //起飞城市
lblToCity.Text + "," + //到达城市
lblDepDate.Text + "," + //起飞日期中文
"E" + "," + //电子客票标识
strNum + "," + //所剩张数
ns[i].ChildNodes[1].InnerText + "," + //折扣率
strTax + "," + //机场建设费
strYPrice + "," + //Y舱价格
lblYQ.Text; //燃油附加费
table.Rows.Add(row);
} DataGrid dg = (DataGrid) e.Item.FindControl("dgChild");
dg.DataSource = table;
dg.DataBind();
}
}
{
string Temp = EtermDate;
string Result = "";
Result = Temp.Substring(5, 2) + LinkSign1;
switch (Temp.Substring(2, 3))
{
case "JAN":
{
Result += "1";
break;
}
case "FEB":
{
Result += "2";
break;
}
case "MAR":
{
Result += "3";
break;
}
case "APR":
{
Result += "4";
break;
}
case "MAY":
{
Result += "5";
break;
}
case "JUN":
{
Result += "6";
break;
}
case "JUL":
{
Result += "7";
break;
}
case "AUG":
{
Result += "8";
break;
}
case "SEP":
{
Result += "9";
break;
}
case "OCT":
{
Result += "10";
break;
}
case "NOV":
{
Result += "11";
break;
}
case "DEC":
{
Result += "12";
break;
}
}
Result += LinkSign2 + Temp.Substring(0, 2) + LinkSign3;
return Result;
} #region Web 窗体设计器生成的代码 protected override void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
} private void InitializeComponent()
{
this.dgParent.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgParent_ItemDataBound);
this.SingleSubmit.ServerClick += new System.EventHandler(this.SingleSubmit_ServerClick);
this.Load += new System.EventHandler(this.Page_Load); } #endregion private void SingleSubmit_ServerClick(object sender, EventArgs e)
{
//去程座位信息
Session["DepSeat"] = Request["DepSeat"].ToString();
Response.Redirect("PassengerInfo.aspx");
} }
}
FlightResult.aspx:
<asp:datagrid id="dgParent" runat="server">
<Columns>
<asp:TemplateColumn HeaderText="航班(机型)">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Flight") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="舱位明细">
<ItemTemplate>
<asp:DataGrid ID="dgChild" runat="server" AutoGenerateColumns="False" Width="100%">
<Columns>
<asp:TemplateColumn HeaderText="舱位">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ClassCode") %>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>FlightResult.aspx.cs:
private void Page_Load(object sender, EventArgs e)
{
doc = new XmlDocument();
if (!Page.IsPostBack)
{
if (Session["CmdDep"] != null)
{
try
{
string SingleLine = new IEtermservice().Qry(Funs.FormatAvCmd("CKG230", Session["CmdDep"].ToString()));
//doc.Load(Server.MapPath("XXX.xml"));
doc.LoadXml(SingleLine);
XmlNodeList ns = doc.SelectNodes("//Detail");
DataTable table = new DataTable("ParentTable");
DataColumn column;
DataRow row; column = new DataColumn();
column.DataType = Type.GetType("System.Int32");
column.ColumnName = "id";
column.ReadOnly = true;
column.Unique = true;
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Flight";
column.AutoIncrement = false;
column.Caption = "Flight";
column.ReadOnly = true;
column.Unique = false;
table.Columns.Add(column); DataColumn[] PrimaryKeyColumns = new DataColumn[1];
PrimaryKeyColumns[0] = table.Columns["id"];
table.PrimaryKey = PrimaryKeyColumns; for (int i = 0; i < ns.Count; i++)
{
row = table.NewRow();
row["id"] = i;
row["Flight"] = ns[i].ChildNodes[1].InnerText;
} dgParent.DataSource = table;
dgParent.DataBind();
}
catch
{
Dialog.ShowAlertMsg("航班查询失败,请重新查询!");
Dialog.PageRedirect("AirTicket.aspx", 2);
}
}
}
} private void dgParent_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView) e.Item.DataItem; string strFlight = drv.Row["Flight"].ToString();
XmlNodeList ns = doc.SelectNodes("//Detail[Flight='" + strFlight + "']/Class");
DataTable table = new DataTable("ChildTable");
DataColumn column;
DataRow row;
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "ClassCode";
table.Columns.Add(column); for (int i = 0; i < ns.Count; i++)
{
row = table.NewRow(); row["ClassCode"] = ns[i].ChildNodes[0].InnerText;
} DataGrid dg = (DataGrid) e.Item.FindControl("dgChild");
dg.DataSource = table;
dg.DataBind();
}
}
你们觉得增加服务器带宽能解决问题吗?
若还是那问题
那就是在数据较多时,用GRID显示时效率差