仓酷云

标题: ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据 [打印本页]

作者: 冷月葬花魂    时间: 2015-1-16 22:37
标题: ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)asp.net|数据|显现  在今朝的年夜部分Web程序中,我们都必要显现给用户一些列表数据。ASP.NET中的GridView服务器控件供应了这类功效,Atlas中的客户端控件ListView也能够在客户端供应相似功效,并以AJAX体例运转。固然您可使用传统的GridView控件加上Atlas的UpdatePanel供应一样的AJAX运转体例,可是这类完成体例较低效,也不是“地道”的Atlas办法。保举的办法是接纳Atlas的客户端控件ListView来取代。不要忧虑,Atlas的ListView控件和GridView一样复杂,而其两者在良多观点方面是类似的,比方ItemTemplate。可是必要注重的是今朝IDE中并没有供应对Atlas剧本的智能感知功效,加上Atlas剧本也没有编译时代反省,以是在誊写代码的时分应当分外当心。

  利用ListView的时分应当供应给其一些需要的模版(Template),以告知Atlas应当怎样衬着您的内容。ListView中有以下模版:
  ListView中另有一些属性:
  ListView另有一些承继于Sys.UI.Data.DataControl基类的办法/属性,由于鄙人面的代码中我们不必要利用,这里临时略过。假如您感乐趣。OK,让我们经由过程一个实例来讲明怎样利用ListView控件:

  起首,我们编写一个前往.NET中DataTable的WebService。注重到在这里将承继于Microsoft.Web.Services.DataService基类,而且为service办法加上界说在称号空间System.ComponentModel中的属性DataObjectMethod。在service办法的开首,我们利用System.Threading.Thread.Sleep(2000)来摹拟2秒钟的收集提早,以即可以看到emptyTemplate中的内容。

[WebService(Namespace="http://tempuri.org/")]
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
publicclassMyService:Microsoft.Web.Services.DataService
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
{
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图

[attach]292511[/attach][DataObjectMethod(DataObjectMethodType.Select)]
[attach]292512[/attach]publicDataTableGetListData()
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
[attach]292513[/attach]{
[attach]292514[/attach]System.Threading.Thread.Sleep(2000);
[attach]292515[/attach]
[attach]292516[/attach]DataTabledt=newDataTable("MyListData");
[attach]292517[/attach]dt.Columns.Add("Name",typeof(string));
[attach]292518[/attach]dt.Columns.Add("Email",typeof(string));
[attach]292519[/attach]DataRownewRow;
[attach]292520[/attach]for(inti=0;i<5;++i)
[attach]292521[/attach][attach]292522[/attach][attach]292523[/attach]{
[attach]292524[/attach]newRow=dt.NewRow();
[attach]292525[/attach]newRow["Name"]=string.Format("Dflying{0}",i);
[attach]292526[/attach]newRow["Email"]=string.Format("Dflying{0}@dflying.net",i);
[attach]292527[/attach]dt.Rows.Add(newRow);
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
}
[attach]292528[/attach]returndt;
[attach]292529[/attach]}
ASP.NET网站制作之ASP.NET Atlas ListView显现列表数据
登录/注册后可看大图
}

  然后,增加一些ASP.NET页面中必需的控件/标志:

<atlas:ScriptManagerID="ScriptManager1"runat="server"/>
[attach]292530[/attach]<!--ElementformyList(container)-->
[attach]292531[/attach]<divid="myList"></div>
[attach]292532[/attach]<!--LayoutElements-->
[attach]292533[/attach]<divstyle="display:none;">
[attach]292534[/attach]</div>
  在下面的标志中,我们到场了三个标志:一个必需的ScriptManager控件。一个id为myList的div,用来让Atlas把衬着后的ListView安排于这里。一个埋没的div,用于界说我们的模版。这个埋没div中的元素在页面上是不成见的,只是用来供应给Atlas需要的模版。

  我们在这个埋没的div中到场以下ListView的模版:

<!--LayoutTemplate-->
[attach]292535[/attach]<tableid="myList_layoutTemplate"border="1"cellpadding="3">
[attach]292536[/attach]<thead>
[attach]292537[/attach]<tr>
[attach]292538[/attach]<td><span>No.</span></td>
[attach]292539[/attach]<td><span>Name</span></td>
[attach]292540[/attach]<td><span>Email</span></td>
[attach]292541[/attach]</tr>
[attach]292542[/attach]</thead>
[attach]292543[/attach]<!--RepeatTemplate-->
[attach]292544[/attach]<tbodyid="myList_itemTemplateParent">
[attach]292545[/attach]<!--RepeatItemTemplate-->
[attach]292546[/attach]<trid="myList_itemTemplate">
[attach]292547[/attach]<td><spanid="lblIndex"/></td>
[attach]292548[/attach]<td><spanid="lblName"/></td>
[attach]292549[/attach]<td><spanid="lblEmail"/></td>
[attach]292550[/attach]</tr>
[attach]292551[/attach]<!--SeparatorItemTemplate-->
[attach]292552[/attach]<trid="myList_separatorTemplate">
[attach]292553[/attach]<tdcolspan="3">Separator</td>
[attach]292554[/attach]</tr>
[attach]292555[/attach]</tbody>
[attach]292556[/attach]</table>
[attach]292557[/attach]<!--EmptyTemplate-->
[attach]292558[/attach]<divid="myList_emptyTemplate">
[attach]292559[/attach]NoData
[attach]292560[/attach]</div>

  下面的代码中您能够看到我提到的一切四种模版。别的还要指定每个模版一个id,将用于上面的Atlas剧本声明中。在这个例子中我将以HTMLTable的情势衬着这个ListView,很抱愧分开元素将会很丑恶(一个空行)。

  最初在页面中增加Atlas剧本声明:

<dataSourceid="listDataSource"autoLoad="true"serviceURL="MyService.asmx"/>
[attach]292561[/attach]
[attach]292562[/attach]<listViewid="myList"itemTemplateParentElementId="myList_itemTemplateParent">
[attach]292563[/attach]<bindings>
[attach]292564[/attach]<bindingdataContext="listDataSource"dataPath="data"property="data"/>
[attach]292565[/attach]</bindings>
[attach]292566[/attach]<layoutTemplate>
[attach]292567[/attach]<templatelayoutElement="myList_layoutTemplate"/>
[attach]292568[/attach]</layoutTemplate>
[attach]292569[/attach]<itemTemplate>
[attach]292570[/attach]<templatelayoutElement="myList_itemTemplate">
[attach]292571[/attach]<labelid="lblIndex">
[attach]292572[/attach]<bindings>
[attach]292573[/attach]<bindingdataPath="$index"transform="Add"property="text"/>
[attach]292574[/attach]</bindings>
[attach]292575[/attach]</label>
[attach]292576[/attach]<labelid="lblName">
[attach]292577[/attach]<bindings>
[attach]292578[/attach]<bindingdataPath="Name"property="text"/>
[attach]292579[/attach]</bindings>
[attach]292580[/attach]</label>
[attach]292581[/attach]<labelid="lblEmail">
[attach]292582[/attach]<bindings>
[attach]292583[/attach]<bindingdataPath="Email"property="text"/>
[attach]292584[/attach]</bindings>
[attach]292585[/attach]</label>
[attach]292586[/attach]</template>
[attach]292587[/attach]</itemTemplate>
[attach]292588[/attach]<separatorTemplate>
[attach]292589[/attach]<templatelayoutElement="myList_separatorTemplate"/>
[attach]292590[/attach]</separatorTemplate>
[attach]292591[/attach]<emptyTemplate>
[attach]292592[/attach]<templatelayoutElement="myList_emptyTemplate"/>
[attach]292593[/attach]</emptyTemplate>
</listView>

  这里我增加了一个Atlas客户端DataSource工具以从WebService中获得数据。这里我们临时未几谈DataSource(大概在后续文章中有所先容)。让我们来看一下ListView相干的界说:在ListView的界说中,我们指定了itemTemplateParentElementId属性。然后在ListView的外部界说了一个binding段,用来把DataSource中获得的数据与这个ListView绑定起来。我们还界说了四个模版段,每一个模版段都用layoutElement与下面界说过的四种模版联系关系。注重到在layoutTemplate模版中的第一个label控件,我们在其绑定中指定了一个Addtransformer以将从0入手下手的按次变成从1入手下手(关于AtlasTransformer,请参考我的这篇文章:http://dflying.cnblogs.com/archive/2006/04/05/367908.html)。

  半途而废,运转一下吧。

  装载中:



装载完成:

我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高java的运行效率。只是将java源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。
作者: 若天明    时间: 2015-1-19 19:30
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
作者: 若相依    时间: 2015-1-28 09:49
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
作者: 只想知道    时间: 2015-2-5 20:25
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
作者: 小妖女    时间: 2015-2-13 13:10
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
作者: 深爱那片海    时间: 2015-3-3 21:41
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
作者: 分手快乐    时间: 2015-3-18 20:05
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
作者: 不帅    时间: 2015-3-26 13:34
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2