您现在的位置:中国下载站学院中心网络编程ASP.net教程ADO.NET → 文章列表

ASP.NET2.0中使用数据源控件之参数

作者:佚名  来源:不详  发布时间:2007-4-14 12:09:08   

减小字体 增大字体

 
 
  数据源控件需要使用参数值来指定需要选择哪些数据,或者指定如何修改数据以及修改什么数据。通常情况下,页面包含一些 UI,以定义那些必须在选择操作中使用的参数,而数据绑定控件提供了参数值来进行插入、更新和删除操作。但是,在任意一种情况下,都可能同时出现两种现象。在第 1 部分中,数据源控件揭示了 ZipCode 属性,该属性可进行声明性设置,或者以编码来设置以响应用户操作。参数被设计为以声明性(且可扩展)的方式来完成此方案。

  引言

  Parameter 基类代表一个通用参数。Microsoft Visual Studio 2005 提供了诸如 QueryStringParameter 之类的参数,以便将数据从查询字符串参数请求到数据源中。另一个非常有用的参数是 ControlParameter,该参数允许从任一控件属性中请求数据。如果内置参数类型不能满足您的要求,则您可以定义自己的参数类型。这样您就可以使页面与粘接代码不相关,而是将该代码整齐地封装在参数实现中。

  除了从不同的源中请求值,这些参数还可以跟踪值的更改情况,并通知这些更改的所属数据源,进而引发数据源更改通知,最终在数据绑定控件中触发数据绑定操作。简而言之,这就是使用 ControlParameters 时,主要的声明性详细方案所依据的原理。

  示例

  在此将向 WeatherDataSource 添加参数功能,然后进一步阐述。

  public class WeatherDataSource : DataSourceControl {
 public static readonly string ZipCodeParameterName = "ZipCode";
 ...
 private ParameterCollection _parameters;
 private ParameterCollection Parameters {
  get {
   if (_parameters == null) {
    _parameters = new ParameterCollection();
    _parameters.ParametersChanged += new EventHandler(this.OnParametersChanged);
    if (IsTrackingViewState) {
     ((IStateManager)_parameters).TrackViewState();
    }
   }
   return _parameters;
  }
 }
 ...
 public string GetSelectedZipCode() {
  if (_parameters != null) {
   Parameter zipCodeParameter = _parameters[ZipCodeParameterName];
   if (zipCodeParameter != null) {
    IOrderedDictionary parameterValues = _parameters.GetValues(Context, this);
    return (string)parameterValues[zipCodeParameter.Name];
   }
  }
  return ZipCode;
 }
 protected override void LoadViewState(object state) {
  object baseState = null;
  if (state != null) {
   Pair p = (Pair)state;
   baseState = p.First;
   if (p.Second != null) {
    ((IStateManager)Parameters).LoadViewState(p.Second);
   }
  }
  base.LoadViewState(baseState);
 }
 protected override void OnInit(EventArgs e) {
  Page.LoadComplete += new EventHandler(this.OnPageLoadComplete);
 }
 private void OnPageLoadComplete(object sender, EventArgs e) {
  if (_parameters != null) {
   _parameters.UpdateValues(Context, this);
  }
 }
 private void OnParametersChanged(object sender, EventArgs e) {
  CurrentConditionsView.RaiseChangedEvent();
 }
 protected override object SaveViewState() {
  object baseState = base.SaveViewState();
  object parameterState = null;
  if (_parameters != null) {
   parameterState = ((IStateManager)_parameters).SaveViewState();
  }
  if ((baseState != null) || (parameterState != null)) {
   return new Pair(baseState, parameterState);
  }
  return null;
 }
 protected override void TrackViewState() {
  base.TrackViewState();
  if (_parameters != null) {
   ((IStateManager)_parameters).TrackViewState();
  }
 }
}


在百度中搜索更多ASP.NET2.0中使用数据源控件之参数相关网页 转贴于:中国下载站

  • 上一篇文章:ASP.NET2.0中数据源控件之异步数据访问
  • 下一篇文章:ASP.NET2.0中使用数据源控件之基础知识
  • 阅读统计:[]
  • 中国下载站】【设为主页】【收藏本页】【打印本文】【回到顶部】【关闭此页

    相关文章
    文章评论(评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码


    设为首页 - 关于我们 - 广告服务 - 网站地图 - 加入收藏 - 网站声明 - 网站帮助 - 友情链接

    • Copyright (C) 2006-2008 www.cndownz.com All Rights Reserved.
      中国下载站 版权所有. 粤ICP备05141802号. 对本站有任何建议、意见或投诉,请来信:cndownzcom@yahoo.com.cn.
      喜欢中国下载站(cndownz.com),请把中国下载站(cndownz.com)告诉你QQ上的5位好友,多谢支持!