使用ASP.NET Atlas ListView控件显示列表数据

三极管吸潮失效分析案例 案例背景三极管也称为晶体三极管,它被视为电子电路中最重要的器件之一。三极管顾名思义具有三个电极,它最主要的功能是电流放大和开关作用。本次失效案例中的三极管在仓库存放一段时间后,在PCBA测试过程中集中发生不良。分析过程1.外观检测对失效样品进行外观检测,未发现明显破损、裂纹等不良。2.X-ray检测对失效样品进行X-ray检测,金线、绑定点未发现异常。3.开封检测对失效样品进行开封检测,发现存在键合点脱落的现象,键合点附近的晶圆破损。4.SEM检测对失效样品进行SEM检测,发现晶圆键合点位置有裂纹和破损,金 阅读详情

English Version: http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html

在这个系列中,我将介绍一些Atlas Sys.UI.Data中较高级的控件,包括:

  1. Sys.UI.Data.ListView:使用ASP.NET Atlas ListView控件显示列表数据
  2. Sys.UI.Data.ItemView:使用ASP.NET Atlas ItemView控件显示集合中的单个数据
  3. Sys.UI.Data.DataNavigator:使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航 
  4. Sys.UI.Data.SortBehavior:使用ASP.NET Atlas SortBehavior实现客户端排序
  5. Sys.UI.Data.XSLTView:使用ASP.NET Atlas XSLTView控件用XSLT修饰并显示XML数据
这篇是其中的第一篇: 使用ASP.NET Atlas ListView控件显示列表数据

在目前的大部分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中有如下模版:

  1. layoutTemplate:这个模版用来渲染包含列表项目的容器(例如使用<table>标记),列表的头部(例如使用<thead>标记),尾部等。您必须为ListView指定一个layoutTemplate。而且这个模版必须包含一个itemTemplate模版,也可选包含一个separatorTemplate模版。
  2. itemTemplate:这个模版用来渲染列表中的一个项目(例如使用<tr>标记)。这个模版必须被置于layoutTemplate中。
  3. separatorTemplate:这个模版用来渲染列表中的项目之间的分隔元素(例如使用<hr>标记)。这个模版必须被置于layoutTemplate中。
  4. emptyTemplate.:这个模版用来渲染没有项目存在时的ListView。此时可能与该ListView相关的DataSource对象中没有项目,或是正在从服务器中取得的过程中。

ListView中还有一些属性:

  1. itemCssClass:指定项目条目的css class。
  2. alternatingItemCssClass:指定间隔的项目条目的css class。
  3. selectedItemCssClass:指定被选中的项目条目的css class。
  4. separatorCssClass:指定分隔元素的css class。
  5. itemTemplateParentElementId:这个属性指定了itemTemplate和separatorTemplate的父元素。这样itemTemplate和separatorTemplate元素就可以在其中被重复渲染。

ListView还有一些继承于Sys.UI.Data.DataControl基类的方法/属性,因为在下面的代码中我们不需要使用,这里暂且略过。如果您感兴趣,可以参考这篇文章:使用ASP.NET Atlas ItemView控件显示集合中的单个数据。OK,让我们通过一个实例来说明如何使用ListView控件:

首先,我们编写一个返回.NET中DataTable的Web Service。注意到在这里将继承于Microsoft.Web.Services.DataService基类,并且为service方法加上定义在名称空间System.ComponentModel中的属性DataObjectMethod。在service方法的开头,我们使用System.Threading.Thread.Sleep(2000)来模拟2秒钟的网络延迟,以便可以看到emptyTemplate中的内容。

[WebService(Namespace  =   " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
public   class  MyService  : Microsoft.Web.Services.DataService  {

    [DataObjectMethod(DataObjectMethodType.Select)]
    
public DataTable GetListData()
    
{
        System.Threading.Thread.Sleep(
2000);
        
        DataTable dt 
= new DataTable("MyListData");
        dt.Columns.Add(
"Name", typeof(string));
        dt.Columns.Add(
"Email", typeof(string));
        DataRow newRow;
        
for (int i = 0; i < 5; ++i)
        
{
            newRow 
= dt.NewRow();
            newRow[
"Name"] = string.Format("Dflying {0}", i);
            newRow[
"Email"] = string.Format("Dflying{0}@dflying.net", i);
            dt.Rows.Add(newRow);
        }

        
return dt;
    }

}

然后,添加一些 ASP.NET 页面中必须的控件 / 标记:
< atlas:ScriptManager  ID ="ScriptManager1"  runat ="server"   />
<!--  Element for myList (container)  -->
< div  id ="myList" ></ div >
<!--  Layout Elements  -->
< div  style ="display: none;" >
</ div >

在上面的标记中,我们加入了三个标记:一个必须的ScriptManager控件。一个id为myList的div,用来让Atlas把渲染后的ListView放置于这里。一个隐藏的div,用于定义我们的模版。这个隐藏div中的元素在页面上是不可见的,只是用来提供给Atlas必要的模版。

我们在这个隐藏的div中加入如下ListView的模版:

<!--  Layout Template  -->
< table  id ="myList_layoutTemplate"  border ="1"  cellpadding ="3" >
    
< thead >
        
< tr >
            
< td >< span > No. </ span ></ td >
            
< td >< span > Name </ span ></ td >
            
< td >< span > Email </ span ></ td >
        
</ tr >
    
</ thead >
    
<!--  Repeat Template  -->
    
< tbody  id ="myList_itemTemplateParent" >
        
<!--  Repeat Item Template  -->
        
< tr  id ="myList_itemTemplate" >
            
< td >< span  id ="lblIndex"   /></ td >
            
< td >< span  id ="lblName"   /></ td >
            
< td >< span  id ="lblEmail"   /></ td >
        
</ tr >
        
<!--  Separator Item Template  -->
        
< tr  id ="myList_separatorTemplate" >
            
< td  colspan ="3" > Separator </ td >
        
</ tr >
    
</ tbody >
</ table >
<!--  Empty Template  -->
< div  id ="myList_emptyTemplate" >
    No Data
</ div >

上面的代码中您可以看到我提到的所有四种模版。另外还要指定每一个模版一个id,将用于下面的Atlas脚本声明中。在这个例子中我将以HTML Table的形式渲染这个ListView,很抱歉分隔元素将会很丑陋(一个空行)。

最后在页面中添加Atlas脚本声明:

< dataSource  id ="listDataSource"  autoLoad ="true"  serviceURL ="MyService.asmx"   />

< listView  id ="myList"  itemTemplateParentElementId ="myList_itemTemplateParent" >
    
< bindings >
        
< binding  dataContext ="listDataSource"  dataPath ="data"  property ="data"   />
    
</ bindings >
    
< layoutTemplate >
        
< template  layoutElement ="myList_layoutTemplate"   />
    
</ layoutTemplate >
    
< itemTemplate >
        
< template  layoutElement ="myList_itemTemplate" >
            
< label  id ="lblIndex" >
                
< bindings >
                    
< binding  dataPath ="$index"  transform ="Add"  property ="text" />
                
</ bindings >
            
</ label >
            
< label  id ="lblName" >
                
< bindings >
                    
< binding  dataPath ="Name"  property ="text"   />     
                
</ bindings >
            
</ label >
            
< label  id ="lblEmail" >
                
< bindings >
                    
< binding  dataPath ="Email"  property ="text"   />
                
</ bindings >
            
</ label >                     
        
</ template >
    
</ itemTemplate >
    
< separatorTemplate >
        
< template  layoutElement ="myList_separatorTemplate"   />
    
</ separatorTemplate >
    
< emptyTemplate >
        
< template  layoutElement ="myList_emptyTemplate" />
    
</ emptyTemplate >
</ listView >

这里我添加了一个Atlas客户端DataSource对象以从Web Service中取得数据。这里我们暂且不多谈DataSource(可能在后续文章中有所介绍)。让我们来看一下ListView相关的定义:在ListView的定义中,我们指定了itemTemplateParentElementId属性。然后在ListView的内部定义了一个binding段,用来把DataSource中取得的数据与这个ListView绑定起来。我们还定义了四个模版段,每个模版段都用layoutElement与上面定义过的四种模版关联。注意到在layoutTemplate模版中的第一个label控件,我们在其绑定中指定了一个Add transformer以将从0开始的顺序变为从1开始(关于Atlas Transformer,请参考我的这篇文章:http://dflying.cnblogs.com/archive/2006/04/05/367908.html)。

大功告成,运行一下吧。

装载中:

装载完成:

示例代码可以在此下载:http://www.cnblogs.com/Files/dflying/AtlasListViewDemo.zip
开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验(一) 阿里云推出国内首个集成“快思考”与“慢思考”能力的 Qwen3-8B 大语言模型,以80亿参数和 128K 上下文支持,重塑AI应用边界并助力开发者高效部署 阅读详情

相关推荐

别再傻傻分不清!一文讲透电子产品‘冲击’与‘碰撞’试验的区别与选用(附GB/T 2423标准解读)

本文详细解析了电子产品可靠性测试中冲击与碰撞试验的核心区别与应用场景,结合GB/T 2423标准提供实用指南。冲击测试模拟瞬时高强度事件(如跌落),而碰撞测试针对重复性力学环境(如运输颠簸)。通过参数对比和标准解读,帮助研发人员精准选择测试方案,提升产品可靠性验证效率。

weixin_42665255的博客 267

ASP.Net之 ListView控件专题

ASP.Net之 ListView控件专题 一、 ListView控件适用场合 1. 应用场合:增删改查列不是非常多的数据,如果列稍微多一些,那么增改两个功能势必要单独拿出来,不能和查询使用同一个ListView。 2. 两种方法:数据源控件绑定和数据源直接绑定 数据源控件绑定:ListView等表格式数据显示控件 ObjectD...

wangyihero8的专栏 4741

Maya绑定:人物绑定详细案例(创建骨骼、镜像骨骼、IK创建、IK打组、IK控制器、FK控制器、烘焙动画、导出)

Maya绑定:人物绑定详细案例(创建骨骼、镜像骨骼、IK创建、IK打组、IK控制器、FK控制器、烘焙动画、导出)

m0_45877477的博客 1632

在ASP.NET中使用ListView控件对数据进行显示、分页和排序

最终效果图如下所示: 使用ListView控件是不需要写代码的,下面我们来看一下ListView的操作流程: 1、首先新建一个ASP窗体 2、然后拖入一个ListView和一个SqlDataSource 3、选中SQLDataSource,点击配置数据源,然后点击新建连接 4、然后配置SQL Server服务器名、登录方式和要连接到的数据库,点击确定 5、点击下一步,再下一步,然后选择要...

白水的博客 2204

11.3 海岛微电网与工业园区的构网应用

海岛微电网与工业园区配电网是构网技术下沉应用的两大典型场景。海岛微电网以构网型储能为核心,解决孤岛系统稳定性问题,需具备黑启动、多能源协调和故障穿越能力;工业园区则侧重电能质量治理、并离网无缝切换和经济优化运行。两类场景均需解决多机并联稳定性、故障特性适配和分层协同控制等关键技术。构网型变流器的电压源构建能力、自适应控制策略及飞轮储能等特殊应用,为构建高可靠性、高经济性的分布式能源系统提供了创新解决方案。

技术工作者 1084

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗?

本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。

weixin_29288313的博客 332

独有数据绑定控件ListView

随 Visual Studio® 2008 一同发布的 ASP.NET 3.5 引入了新的数据绑定控件—ListView。我知道您正在想什么:为什么 ASP.NET 里还需要另一个数据绑定控件呢?毕竟,当显示数据收集时,我们已经有超过 10 个控件可供选择,其中包括逐渐不再使用的 DataGrid、新的和改进的 GridView、非常可靠和简单的 Repeater、独特和灵活的 Da...

weixin_33788244的博客 474

Keil5芯片包下载后无法识别?手把手排查教程

遇到Keil5芯片包下载后不被识别的问题别慌,常见原因包括安装路径错误或包未正确注册。通过检查Pack Installer状态和手动更新设备支持列表,轻松排查故障,确保开发环境正常运行。

weixin_35459464的博客 878

ASP.NET MVC 数据查询之展示列表

我们尝试一下ASP.NET MVC项目中展示数据查询的结果,比如一个用户列表。 方法1:把每一个用户的数据存入一个用户类,然后集成一个用户类的LIST,然后循环展示。 第一步:写一个用户类,在数据库建立表并插入测试数据(忽略) 在Model目录下,新建类文件User.cs,代码如下:(字段是随意设置的), using System; using System.Collections.Ge...

"去昨天找你" 1万+

指纹浏览器 WebGPU:新一代图形指纹的检测趋势与提前防御

指纹浏览器与风控系统对抗已升级至硬件层面。传统基于WebGL的API拦截和像素噪声技术,在WebGPU时代因架构变革而失效。WebGPU通过Compute Shader直接测量GPU物理算力,暴露了软件模拟的致命缺陷。防御需转向真实GPU硬件直通和虚拟化技术,如vGPU分割算力并伪装特征,以应对风控系统对硬件拓扑和浮点精度的检测。唯有基于物理算力的拟态,才能抵御新一代图形指纹的降维打击。

数据知道的博客 217

Arcgis模型构建器01——写一个简单的模型

在使用模型构建器解决这个需求之前,我们要想清楚如果我们手动解决的话,应该如何去处理,因为构建模型的过程正是基于我们手动处理的过程来构建的。我有一个全国的dem影像数据和一个陕西省边界范围矢量,现在我想获取陕西省的dem影像的坡度数据。填写完之后点击确定,我们发现,两个输入数据和工具连接起来了,并且通过裁剪工具得到一个中间结果,即。我们发现工具框和中间数据框都存在阴影,说明已经运行过了这个模型,不报错就说明模型运行成功!现在我们就把数据和工具都串联起来了,成功构建好了模型。

爱吃雪糕的小布丁的博客 918

asp.net 列表控件

web空间类都被放置在System.Web.UI.WebControls命名空间下1、ListBox ListBox控件用于创建多选的下拉列表,而可选项是通过ListItem元素来定义的。示例代码如下: 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if(!Page.IsPo...

weixin_30394633的博客 683

一文整理深度学习【深度学习linux的docker+pytorch+cuda+nvidia-docker+vscode配置】

docker+pytorch+cuda+nvidia-docker+vscode

Edward的博客 1335

使用ASP.NETAtlasListView控件显示列表数据

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 294

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航

English Version: http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html 在这个系列中,我将介绍一些Atlas Sys.UI.Data中较高级的控件,包括: Sys.UI.Data.List...

weixin_30764137的博客 242

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

使用ASP.NET Atlas SortBehavior实现客户端排序

English Version: http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html 在这个系列中,我将介绍一些Atlas Sys.UI.Data中较高级的控件,包括: Sys.UI.Data.ListVi...

weixin_30588827的博客 161

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

使用ASP.NET Atlas实现拖放(Drag & Drop)效果(下)

English Version: http://dflying.dflying.net/1/archive/77_atlas_drag__drop_overview.html 中文版:http://dflying.cnblogs.com/archive/2006/04/23/382916.html请同时参考:使用ASP.NET Atlas实现拖放(Drag & Drop)效果(上) 在...

weixin_30679823的博客 151

Atlas入门-将普通控件升级为Atlas控件/使用listView显示数据库数据[视频]

该两例均参考与Dflying的学习指南!!谨表感谢!!!在本级视频中,我想做两个演示,1: 将普通控件升级为Atlas控件;2:使用listView显示数据库数据视频下载  下面是全部代码升级普通控件 全部代码Code highlighting produced by Actipro CodeHig

880

Atlas Table Layout Template

<Table>标记必须写在ListView内,不要runat="server",需要这个的是<tbody>,以下是经过修改过的Atlas HOL 5: <%@PageLanguage="C#"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://w...

aonian7053的博客 110

使用ASP.NETAtlasPageNavigator控件实现客户端分页导航

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 392

Dflying的Atlas相关介绍/教程文章合辑PDF下载

今天早晨收到Sun Lu朋友的一封邮件,他说将我前一段时间的关于Atlas的文章做成了一个单独的PDF文件,大概有100多页,二三十篇文章吧,可以方便离线时参考,并附带寄给了我。我大概看了一下,做得挺精美的,前面还有个分类的目录:) 真是辛苦 Sun Lu 朋友了。 我想这里或许还有需要的朋友,并考虑到目前国内Atlas的资源并不多,故转贴到这里,感兴趣的朋友可以在此下载:http:/...

weixin_33950035的博客 116

利用数据绑定和模板创建Atlas应用程序

一、 简介   本文将向你展示如何使用微软新的Web开发技术(代码名为Atlas)来实现数据绑定和模板。如果你已经理解什么是Atlas,其主要设计目的及其主要组件,那么你在阅读本文时将最大程度地受益。  本文将向你展示:  · 把一个客户端listView控件绑定到一个dataSource控件。  · 使用模板显示数据。  前提  为了完成本文中的示例...

weixin_34409703的博客 149
上一篇: 使用ASP.NET Atlas实现拖放(Drag & Drop)效果
下一篇: 使用ASP.NET Atlas ItemView控件显示集合中的单个数据
linqingfeng
博客等级 码龄21年 69粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值