<%--
viewcounter.aspx
这个文件代码的作用是显示计数器中的详细资料
这个文件显示了如何打开和读一个XML文件，并且展示了如何使用Repeater


--%>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>

<%@ Page Language="C#"  %>
<html>
<head>
<title> 第四十三例 基于XML的计数器</title>
<script language="C#" runat=server>
//这个脚本当页面装载时候执行
public void Page_Load(Object sender, EventArgs e)
{	
  //该路径下的 Xml文件将要包含所有的数据
  //我们可以修改该文件的路径
  string datafile="db/xmlcounter.xml" ;
			
  try
  {
    DataSet counterData = new DataSet();
    //打开一个 FileStream 到数据库
    //如果"FileShare.ReadWrite" 可用， 其它的用户也可以读写这个文件
    FileStream fin ;
    fin = new FileStream(Server.MapPath(datafile), FileMode.Open, FileAccess.Read, FileShare.ReadWrite) ;
    // 装载 XML文件中的数据
    counterData.ReadXml(new StreamReader(fin));
    //关闭stream
    fin.Close();
    //得到访问者总的数量通过计算XML表中的行数
    showtotal.Text ="从建立本站开始，有效访问人数为<font size=5 color=red> "+ counterData.Tables[0].Rows.Count.ToString() +" </font>次 ";
			
    //数据绑定
    MyDataList.DataSource = counterData.Tables[0].DefaultView;
    MyDataList.DataBind();
  }
  catch (Exception ed)
  {
    //如果有任何例外发生则显示下列信息
    Response.Write("<font color=#FF0000>一个致命的错误发生在："+ed.ToString()+"</font>") ;
  }
}
</script>


</head>	
		<body >
<h3><font face="Verdana"> 第四十三例 基于XML的计数器 </font></h3><br> 

	<asp:label id="showtotal" text="" runat="server" />
	<br>

  <ASP:Repeater id="MyDataList" runat="server">

      <headertemplate>        
         <h5> 查看详细信息 </h5>          
      </headertemplate>

      <itemtemplate>
	<br>
	<table class="mainheads" width="90%" style="font: 8pt verdana" > 
        
	<tr style="background-color:#FFFFCC">	
	  <td>用户主机信息 :</td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "UserAgent") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>用户主机地址 :</td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "UserHostAddress") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>用户主机名字 :</td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "UserHostName") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>浏览器类 型 :</td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "BrowserType") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>浏览器名 称 : </td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "BrowserName") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>最 大版本号 : </td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "MajorVersion") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>最 小版本号 : </td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "MinorVersion") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>用 户 平 台 : </td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "Platform") %>
          </td></tr>
	<tr style="background-color:#FFFFCC">
	  <td>访 问 日 期 :</td>
          <td>
            <%# DataBinder.Eval(Container.DataItem, "Date") %>
          </td></tr>


        <tr style="background-color:#FFFFCC">
	<td>访 问 时 间 :</td>  
	<td>
            <%# DataBinder.Eval(Container.DataItem, "Time") %>
          </td>
        </tr>
	</table><br>
      </itemtemplate>

  </ASP:Repeater>
<br>
	</body>
</html>
