这是5系列实验中的最后一个拉!!
在这个实验里面我们不再使用master,而是做个普通的aspx页面。这是一个标准的aspx页面,我们不需要再在<head>里面包含对客户端脚本库的引用了。这样的一个优势就是使用atlas服务器控件他能够自动的添加他所必须的客户端脚本。使用atlas服务器控件是开发atlas应用程序的一个简单快速高校的方法!好了,我们现在添加个aspx页面
在解决方案管理器里面,右击站点,选择add new item,在弹出的对话框里选Web Form,名字是ServerControlDemo.aspx,而且去掉Place code in separate file box前面的小勾,这样他就不会生成代码后置文件拉。点add。
我们杀掉自动生成的那<script>标记。
再把自动生成的<!DOCTYPE文档类型声明改成: 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这是个xhtm过渡期文档声明,他有三中的,一是过渡,二是严格,三是框架。
把<title>里面的内容改为“实验5”,然后在<head>里面在<title>外面添加个对css文件的引用,
<link href="site.css" rel="stylesheet" type="text/css"></link>
写好的代码如下:
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>实验5</title>
    <link rel="stylesheet" type="text/css" href="site.css"></link>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html>
好拉,我们现在开始添加Atlas ScriptManager、Button、DataSource控件到页面上。
首先在<div>标记里面添加个<atlas:ScriptManager.如下:
<atlas:ScriptManager id="mgr1" runat="server" />
我们在上个实验就已经说到,在一个aspx页面里面只能够而且必须有一个<atlas:ScriptManager服务器控件,如果这个页面包含了其他的atlas服务器控件的话,ScriptManager是用来公里其他的所有的这个页面的atlas服务器控件的服务器atlas控件。
再在<atlas:ScriptManager的后面添加个Atlas服务器Button,这个按钮用他单击来得到公司和他公司的url列表。我们可以根据vs2005开发环境的代码自动感知功能来写代码也可以切换到设计视图来设置他的属性。
可能我们在写代码的时候vs2005开发环境会自动给标记加上/>关闭标记,这个时候我们可以这样做:
在菜单,点tools(工具)===options(选项),在弹出的对话框里面点开Text Editor,再点开他下面的html,再点他下面的format,在右边去掉auto insert close tag前面的小勾就可以拉!
我们现在在设计视图里面来设置这个atlas服务器按钮的属性,在他的属性面板里先设置他的Text为“得到列表”,再在属性面板里点开Click,再点出来的那个Actions右边的小图,出来个对话框,先点add,设置他的target值为DataSource1,method设置为select,再点ok,切换到代码视图是这样的代码,好难看的。
<div>
      <atlas:ScriptManager id="mgr1" runat="server" />
      <atlas:Button ID="fillButton" runat="server" Text="得到列表">
          <click>
          <Actions>
              <atlas:InvokeMethodAction Method="select" Target="DataSource1"></atlas:InvokeMethodAction>
          </Actions>
          </click>
      </atlas:button>
    </div>
按钮的<click>指定如果在按钮上单击的时候将发生什么动作。这个和指定atlas服务器空间的行为差不多。<actions>标记声明当响应父事件时将要发生什么事。在这个action里面将由atlas来调用DataSource服务器控件(我们将在下面添加这个控件),target属性指定了DataSource控件的id。method属性指定了一个特别的方法来调用那个绑定DataSource的web service,在这里,得到的是全部的数据列表。
我们再添加个数据源控件。我们在<atlas:button>后面添加个atlas数据源控件,代码如下:
<atlas:DataSource runat="server" ID="DataSource1" ServiceUrl="~/DataService.asmx" />
在这里我们设置了这个atlas服务器数据源控件的id和serviceUrl属性。
我们再使用LayoutTemplate添加个atlas服务器ListView控件。我们将使用他来绑定数据源控件并且用他来显示数据。这其实就是个服务器控件,但是他有atlas的一些属性和特性,比如不要把整个页面在客户端和服务器端来回传递。紧跟<atlas:DataSource控件,我们添加个<atlas:ListView控件。在属性面板中设置他的id和templateitemcontrolid,代码如下:
<atlas:ListView runat="server" id="listView1"

    itemtemplatecontrolid="templateItem">

</atlas:ListView>
在他里面再写个<bindings>和他的子元素<atlas:binding,如下:
<bindings>
            <atlas:Binding DataContext="DataSource1" DataPath="data"
               Property="data" />
         </bindings>
DataContext指定了这个ListView要绑定的数据源的id。
在<bindings>元素里面定义了两个模板,一个是LayoutTemplate模板和EmptyTemplate模板,第一个用来怎么样显示数据,第二用用来当没有数据的时候显示什么。
这个页面的最后代码如下:
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>实验5</title>
    <link rel="stylesheet" type="text/css" href="site.css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <atlas:ScriptManager id="mgr1" runat="server" />
      <atlas:Button ID="fillButton" runat="server" Text="得到列表">
          <click>
          <Actions>
              <atlas:InvokeMethodAction Method="select" Target="DataSource1" />
          </Actions>
          </click>
      </atlas:button>
      <atlas:DataSource runat="server" ID="DataSource1" ServiceUrl="~/DataService.asmx" />
      <atlas:ListView ID="ListView1" runat=server ItemTemplateControlID="templateItem">
         <bindings>
            <atlas:Binding DataContext="DataSource1" DataPath="data"
               Property="data" />
         </bindings>
         <LayoutTemplate>
  <ul runat="server" id="templateItemParent">
    <li runat="server" id="templateItem">
      <strong id="Strong1" runat="server">
      <atlas:label runat="server" id="nameLabel">
        <bindings>
          <atlas:binding DataPath="Name" Property="text" />
        </bindings>
      </atlas:label>
      </strong>
      <br />
      <atlas:hyperlink runat="server" id="companyUrl" >
        <bindings>
          <atlas:binding DataPath="Description" Property="text" />
        </bindings>          
      </atlas:hyperlink>
    </li>
  </ul>
</LayoutTemplate>
<emptytemplate>No Data</emptytemplate>

      </atlas:ListView>
    </div>
    </form>
</body>
</html>
按F5运行,首先显示没有数据,然后点按钮,数据就出来拉
大家可以看看DataService.asmx和SampleRow.cs的代码,关于泛类型不怎么懂
先看书下~~~~~~~~~~~~