当前位置: 首页 > news >正文

数据源绑定控件

在asp.net的实际开发中,我们经常会绑定一些数据到控件上,这些控件就是所谓的数据源绑定控件,现在常用的数据源绑定控件有下面三个:GrilView,DataList,Repeater!下面就来看看他们之间的区别和用法

用法和显示

GrilView:是通过表格的形式显示数据的,在客户端自动生成了table标签,多用于显示多行多列的数据,具体的用法在前面已经讲过了,比如

DataList:多用来显示一行多列,或者是多行多列的数据,但是它不向GrilView那样这么明显用表格显示,一般用于图片的布局显示,比如产品列表,在客户端也会自动生成table标签:

Repeater:如果我们不想控件在客户端转成其他html标签,比如我们在我们在后台用ul li dl dt等布局,那么在客户端它也只显示这些标签,它不会生成多余的代码,完全靠视图来布局,所用多用于精确的一列多行显示,效率会高一下,比如新闻列别

它们之间的效率比较,repeater可能会比DataList快一些,DataList比GrilView要快,但是用的条件不同,可灵活选择

显示的结构和模板

GrilView的模板很多,显示的代码如下

内容都放在了<Columns></Colums>里面,普通的字段都用

<asp:BoundFied></asp:BoundFied>里,需要使用模板的就放在

  <asp:TemplateField HeaderText="删除" ShowHeader="False">

                   <ItemTemplate>

                       <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="false" CommandArgument='<%#eval_r("Id") %>'

                           CommandName="DelNew" Text="删除" OnClientClick="return confirm('确定要删除吗?')"></asp:LinkButton>

                   </ItemTemplate>

               </asp:TemplateField>

具体的用法在这里不在说了,但是在模板里可以设置内容模板,头模板和结尾模板,交替模板等,绑定的时候无论是用视图绑定还是后台绑定,最好都先用视图绑定好,然后再手动设置

DataList:完全是通过模板来控制布局,模板很多,有内容模板,交替模板等,显示格式如下:

        <asp:DataList ID="pro_DataList" runat="server"

                RepeatColumns="4" RepeatDirection="Horizontal">

                <ItemTemplate>

                <table>

                  <tr>

                    <td><a href="ProductInfo.aspx?pid=<%#eval_r("Id") %>"> <img src='<%# eval_r("ProductImg") %>' alt='<%# eval_r("ProductName") %>' width="151" height="111" style="border: 1px solid rgb(192, 223, 242);" /></a><br /></td>

                  </tr>

                  <tr>

                    <td style="padding-bottom:10px" align="center"><asp:Label ID="Label1" runat="server"

                        Text='<%# eval_r("ProductName") %>' /></td>

                  </tr>

                </table>

                </ItemTemplate>

              

                <SeparatorTemplate>

                <div style="width:20px"></div>

                </SeparatorTemplate>

            </asp:DataList>

这个绑定时候也最好用视图绑定后之后再设置,方便

Repeater:也是用模板来控制布局的,不过模板很少,但是够用,呵呵,看看下面的例子

          <asp:Repeater ID="Repeater1" runat="server">

            <ItemTemplate>

               <tr>

            <td width="32" valign="middle" height="22" align="center"><img width="7" height="7" src="images/case_img_56.gif"></td>

            <td width="484" valign="middle" height="22" align="left"><a href="NewInfo.aspx?newId=<%#eval_r("Id") %>">

               <%#eval_r("Title") %></a> </td>

            <td width="171" valign="middle" height="22" align="center">

                <%#eval_r("AddDate","{0:yyyy-MM-dd}") %></td>

          </tr>  <tr>

            <td valign="middle" height="10" align="left" colspan="3"><img width="645" height="1" src="images/line.gif"></td>

          </tr>

            </ItemTemplate>

            </asp:Repeater>

绑定的时候需要手动设置,这点不是太好,有点麻烦,不过有利就有有弊嘛

单项组成部分

有的时候我们需要循环遍历控件中各个项,那么我们首先要知道这些控件的单项是什么,组成成员有哪些,才可以循环处理

GrilView由行GrilViewRow和列DataControlField组成,循环的行的时候有两种方式

 

foreach(GridViewRow item in this.GridView1.Columns)

 {

            

 }

for (int i = 0; i < this.GridView1.Rows.Count; i++)

        {

         

        }

DataList主要有DataListItem构成,集合是items

  foreach(DataListItem item in this.pro_DataList.Items)

        {

          

        }

        for (int i = 0; i < this.pro_DataList.Items.Count; i++)

        {

           

        }

Repeater主要是由RepeaterItem构成,集合也是items

foreach(RepeaterItem  item in this.Repeater1.Items)

  {

         

   }

 for (int i = 0; i < this.Repeater1.Items.Count; i++)

    {

           

    }

然后item的下面是DataItem项,一般都在DataBound事件

 

控件的RowDataBound

在这里顺便说一下控件的DataBound事件,这个主要是用来触发绑定事件的,就是在控件绑定数据的同时触发的,一般多用于前台的展示,比如用于前台的数据展示,可以结合html标签一起使用,使展示的效果好些,或者是行的点击,移上去等需要客户端(js)处理的事件的都可以使用DataBound完成,意思就是说只要是控件中的项,无论是绑定的数据,还是控件,只要是想用js实现的事件都可以触发DataBind事件,总之,第一是为了更好的显示,第二就是通过js实现控件中的项!

 

转载于:https://www.cnblogs.com/shuang121/archive/2011/03/04/1970623.html

相关文章:

  • 系统动力学软件vensim学习系列
  • 运用 GConf Cleaner 整顿 GConf
  • Qt/Embedded嵌入式开发环境的建立
  • 在嵌入式Linux情形下制造QPF字库的举措
  • Xvidcap:屏幕录像机
  • GrubED-Grub 编辑脚本
  • Google Earth 4.3 beta 界面字体增年夜术
  • Oracle根蒂根基知识
  • 使用SQL语句中between and查询数据出错
  • 网络编程[31]
  • 设置数据库兼容级别的两种方法
  • wordpress之模板汉化
  • 虚拟主机运行Asp.net MVC2程序体验(在不同版本的 IIS 上使用 ASP.NET MVC(转),付程序示例 )...
  • SQL Server 的最大容量规范
  • VC命名规范
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CentOS7 安装JDK
  • exif信息对照
  • HTML-表单
  • Javascript Math对象和Date对象常用方法详解
  • js学习笔记
  • Spark RDD学习: aggregate函数
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 第2章 网络文档
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 前端设计模式
  • 容器服务kubernetes弹性伸缩高级用法
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • # 达梦数据库知识点
  • #QT项目实战(天气预报)
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (6)添加vue-cookie
  • (bean配置类的注解开发)学习Spring的第十三天
  • (搬运以学习)flask 上下文的实现
  • (一)appium-desktop定位元素原理
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)我也是一只IT小小鸟
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .Net Core 中间件验签
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net 托管代码与非托管代码
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET建议使用的大小写命名原则
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • :O)修改linux硬件时间
  • [ C++ ] STL---string类的使用指南