"> " />
科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件关于ASP.NET 2.0 如何绑定高级技巧

关于ASP.NET 2.0 如何绑定高级技巧

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

1.简单数据绑定定         <%# DataBinder.Eval(Container.DataItem, "Price") %>

作者:中国IT实验室 来源:中国IT实验室 2007年9月3日

关键字: 绑定 ASP.NET

 1.简单数据绑定定
  
  <!--ASP.NET 1.x data binding expression -->
  <%# DataBinder.Eval(Container.DataItem, "Price") %>
  <!--Equivalent ASP.NET 2.0 data binding expression -->
  <%# Eval("Price") %>
  <!--XML data binding -->
  <%# XPath("Price") %>
  
  2.数据源控件
  
  控件名                   控件描述
  SqlDataSource            一切支持SQL语句的数据源控件
  AccessDataSource        Access数据源控件
  XmlDataSource           XML数据源控件
  ObjectDataSource        自行编写组件的数据源控件
  SiteMapDataSource       页面导航控件的数据源控件
  
  2.1 SqlDataSource关键属性
  
  名称                        描述
  ConnectionString            连接数据库的连接字符串
  SelectCommand              用于执行查询的命令
  InsertCommand              用于执行插入的命令
  UpdateCommand            用于执行更新的命令
  DeleteCommand             用于执行删除的命令
  DataSourceMode            指定数据源类型是DataSet 或DataReader( 默认值= DataSet)
  ProviderName               指定供应商(默认值= SQL Server .NET provider)
  
  2.2 SqlDataSource 支持通过以下属性进行数据缓存
  
  属性名                     描述
  EnableCaching              指定是否打开缓存(默认值= false)
  CacheDuration              指定结果被缓存多少妙
  CacheExpirationPolicy       指定缓存间隔是sliding 还是absolute
  CacheKeyDependency       使缓存依赖于一个特定键值
  SqlCacheDependency        使缓存依赖于一个特定数据库实体
  
  2.3 参数化命令 XxxParameter 类型指定参数来源
  
  名称                   描述
  SelectParameters        为查询命令指定参数
  InsertParameters        为插入命令指定参数
  UpdateParameters       为更新命令指定参数
  DeleteParameters        为删除命令指定参数
  FilterParameters         为过滤器命令指定参数
  
  2.4 XxxParameter 类型
  
  名称                        描述
  ControlParameter             指定一个源自于控件的参数
  CookieParameter             指定一个源自于cookie的参数
  FormParameter               指定一个源自于表单的参数
  ProfileParameter              指定一个源自于profile的参数
  QueryStringParameter         制定于一个来源于查询字符串的参数
  Parameter                   为数据源绑定一个参数
  SessionParameter            指定一个源自于session的参数
  
  2.5 使用ControlParameter例子
  
   <asp:SqlDataSourceID="Countries" RunAt="server"
  ConnectionString="server=localhost;database=northwind;"
  SelectCommand="select distinct country from customers order by country" />
  <asp:SqlDataSourceID="Customers" RunAt="server"
  ConnectionString="server=localhost;database=northwind;"
  SelectCommand="select * from customers where country =@Country">
  <SelectParameters>
  <asp:ControlParameterName="Country" ControlID="MyDropDownList"
  PropertyName="SelectedValue" />
  </SelectParameters>
  </asp:SqlDataSource>
  <asp:DropDownListID=" MyDropDownList" DataSourceID="Countries"
  DataTextField="country" AutoPostBack="true" RunAt="server" />
  <asp:DataGridDataSourceID="Customers" RunAt="server" />
  
  2.6 调研存储过程例子
  
  <asp:SqlDataSourceID="Countries" RunAt="server"
  ConnectionString="server=localhost;database=northwind;"
  SelectCommand="proc_GetCountries" />
  <asp:SqlDataSourceID="Customers" RunAt="server"
  ConnectionString="server=localhost;database=northwind;"
  SelectCommand="proc_GetCustomers">
  <SelectParameters>
  <asp:ControlParameterName="Country" ControlID="MyDropDownList"
  PropertyName="SelectedValue" />
  </SelectParameters>
  </asp:SqlDataSource>
  <asp:DropDownListID="MyDropDownList" DataSourceID="Countries"
  DataTextField="country" AutoPostBack="true" RunAt="server" />
  <asp:DataGridDataSourceID="Customers" RunAt="server" />
  CREATE PROCEDURE proc_GetCustomers
  @Country nvarchar(32) AS
  SELECT * FROM Customers
  WHERE Country = @Country
  GO
  CREATE PROCEDURE proc_GetCustomers
  CREATE PROCEDURE proc_GetCountriesAS
  SELECT DISTINCT Country
  FROM Customers
  ORDER BY Country
  GO3.XmlDataSource 使用XML 作为数据源
  
  支持缓存与XSL 转换,只支持查询绑定,不支持更新
  
  <asp:XmlDataSourceID="Rates" DataFile="Rates.xml" RunAt="server" />
  <asp:TreeViewID="MyTreeView" DataSourceID="Rates" RunAt="server" />
  
  3 XmlDataSource的关键属性
  
  名称                          描述
  DataFile XML                  数据文件的路径
  TransformFile                  含有XSL 风格定义的数据文件路径
  EnableCaching                 指定是否开启cache (默认值= false)
  XPath XPath                   表达式用来确认数据
  CacheDuration                 以秒为单位的时间间隔
  CacheExpirationPolicy           指定时间间隔是sliding 还是absolute
  CacheKeyDependency          创建缓存依存于某个键
  
  4. ObjectDataSource
  
  从数据组件绑定数据,提供中间件的数据绑定,使数据访问和UI脱离,两种数据绑定方式
  
  SelectMethod, InsertMethod, UpdateMethod,and DeleteMethod
  
  可选择是否使用缓存,可选择是否使用参数
  
  4.1 ODS 关键属性
  
  ODS 关键属性
  
  名称                             描述
  InsertParameters                  指定插入方法参数
  UpdateParameters                 指定更新方法参数
  DeleteParameters                  指定删除方法参数
  SelectParameters                  指定查询方法参数
  CacheDuration                    缓存间隔时间以秒为单位
  SqlCacheDependency             基于某个数据实体的缓存
  
  创建和清除
  
  ObjectDataSource.SelectMethod 可以使用静态方法也可以使用一个类的新实例
  
  如果使用实例方法:ODS 在每次调用的时候创建一个新实例类必须具有公共的建构函数
  
  使用ObjectCreated 和ObjectDisposing 元素可以初始化和撤销函数
  
  5.增强的DataGrid 控件
  
  支持复杂的数据单元格类型,包括CheckBoxFields在<Columns> 元素中声明高可定制的用户界面
  
  gridView 列类型:
  
  名称                       描述
  BoundField                 显示数据库中取出的文本
  ButtonField                显示按钮
  CheckBoxField              使用check boxes显示一个boolean型变量
  HyperLinkField             显示一个超链接
  TemplateField              显示一个自定义的HTML模板
  CommandField             显示一个查询或者编辑按钮
  ImageField                 显示一个图片6. 冲突判定
  
  6.先入胜利
  
  如果数据在取出之后被改变,则修改失败
  
  UpdateCommand结构构成指定ConflictDetection=“CompareAllValues”来实现后入胜利
  
  无论数据是否被修改,该修改都会成功
  
  UpdateCommand结构构成指定ConflictDetection=“OverwriteChanges”来实现
  
  6.1 先入胜利法则更新
  
  <asp:SqlDataSourceID="Employees" RunAt="server"
  ConnectionString="server=localhost;database=northwind;"
  SelectCommand="select employeeid, lastname, firstnamefrom employees"
  UpdateCommand="update employees set lastname=@lastname, firstname=
  @firstnamewhere employeeid=@original_employeeid and lastname=
  @original_lastnameand firstname=@original_firstname"
  ConflictDetection="CompareAllValues">
  <UpdateParameters>
  <asp:ParameterName="EmployeeID" Type="Int32" />
  <asp:ParameterName="lastname" Type="String" />
  <asp:ParameterName="firstname" Type="String" />
  </UpdateParameters>
  </asp:SqlDataSource>
  <asp:GridViewDataSourceID="Employees" Width="100%" RunAt="server"
  
  DataKeyNames="EmployeeID" AutoGenerateEditButton="true" />
  
  7.错误检测
  
  数据更新后控件调用的事件GridView.RowUpdated,DetailsView.ItemUpdated,SqlDataSource.Updated, etc.
  
  处理“status”的事件,无论数据库是否异常允许数据库异常被处理或者再次抛弃,显示多少数据库行被修改
  
  处理更新错误
  <asp:SqlDataSourceID="Employees" RunAt="server"
  UpdateCommand="" OnUpdated="OnUpdateComplete">
  
  </asp:SqlDataSource>
  
  void OnUpdateComplete (Object source, SqlDataSourceStatusEventsArgse)
  {
  if (e.Exception!= null) {
  // Exception thrown. Set e.ExceptionHandledto true to prevent
  // the SqlDataSourcefrom throwing an exception, or leave it set
  // to false to allow SqlDataSourceto rethrowthe exception
  }
  else if (e.AffectedRows== 0) {
  // No exception was thrown, but no records were updated,either.
  // Might want to let the user know that the update failed
  }
  }

查看本文来源

    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章