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

百度搜索网站带图片运营笔记 wordpress

百度搜索网站带图片,运营笔记 wordpress,网站推广公司排名点击查看,字体设计软件免费1#xff0c;给SelectedValue赋值时#xff0c;如果Items中没有该项#xff0c;则报XXX异常#xff1b; 2#xff0c;在绑定时#xff0c;如果数据源返回null#xff0c;它将不做任何动作#xff0c;而我们一般习惯清空#xff1b; 3#xff0c;在绑定到数据源#… 1给SelectedValue赋值时如果Items中没有该项则报XXX异常 2在绑定时如果数据源返回null它将不做任何动作而我们一般习惯清空 3在绑定到数据源而数据源参数依赖于别的控件时会触发两次数据源绑定。   我的解决方法就是重载DropDownList比较菜下面详细说说这三个小问题 1比如某个商品属于某个分类然后分类被删除了而商品表中记录的还是原来类别的ID在绑定DropDownList时就会报那个常见的异常。这个比较头疼因为没有太好的办法使用代码控制。我们可以通过重载SelectedValue属性和PerformDataBinding方法来解决 代码 private  const String ExceptionString   异常 ;          private String cachedSelectedValue;          ///   summary          ///  已重载。加上未添加到列表的项。          ///   /summary          public  override  string SelectedValue         {              get             {                  return  base.SelectedValue;             }              set             {                  if (Items.FindByValue(value)   null)                 {                      //  列表项中并没有该选项自动加入并打上异常标识                     Items.Add( new ListItem(value  ExceptionString, value));                     cachedSelectedValue  value;                 }                  base.SelectedValue  value;             }         }          ///   summary          ///  绑定数据          ///   /summary          ///   param namedataSource/param          protected  override  void PerformDataBinding(IEnumerable dataSource)         {              base.PerformDataBinding(dataSource);              if (cachedSelectedValue !  null)             {                 ClearSelection();                  //  重新设置选中项                 ListItem item  Items.FindByValue(cachedSelectedValue);                  if (item   null)                 {                     item   new ListItem(cachedSelectedValue  ExceptionString, cachedSelectedValue);                     Items.Add(item);                 }                 item.Selected   true;             }         } 2在省市两级下拉联动的时候如果第一级选择直辖市没有下一级城市第二个下拉就应该显示没有子城市或者就显示直辖市或者干脆清空。而默认情况下DropDownList是不做任何事情的。这个可以重载PerformSelect实现含第三点的实现代码 代码 private Boolean selecting   false;          ///   summary          ///  已重载。避免绑定时重入该方法          ///   /summary          protected  override  void PerformSelect()         {              if (selecting)  return;             selecting   true;              if (! this.AppendDataBoundItems)             {                  //  DropDownList在绑定时如果数据源返回null它将不做任何动作而我们一般习惯清空                  this.Items.Clear();             }              base.PerformSelect();             selecting   false;         }   3 仍然是省市两级下拉联动的例子这两个DropDownList分别绑定两个ObjectDataSource对应实体类的Area.FindAllByParentID(Int32 parentID)。第一个下来可以设定参数为固定值0表示顶级地区 asp:Parameter DefaultValue 0  Name parentID  Type Int32  / 第二个下拉可以使用ControlParameter依赖于第一个下拉的选择 asp:ControlParameter ControlID DropDownList1  Name parentID  PropertyName SelectedValue  Type Int32  / 这个时候如果在FindAllByParentID下断点会发现第二个下拉触发了两次绑定 经过一番探索发现首先是第二个DropDownList的DataBind触发了ObjectDataSource的Select而在准备Select的参数的时候需要调用参数的UpdateValue去取依赖控件的值正是这个UpdateValue触发了DataSourceChanged实际比较复杂这里为了易懂从简然后再次Select…… 看看基类 DataBoundControl的PerformSelect方法 代码 protected  override  void PerformSelect() {      if ( this.DataSourceID.Length   0)     {          this.OnDataBinding(EventArgs.Empty);     }     DataSourceView data   this.GetData();      this._arguments   this.CreateDataSourceSelectArguments();      this._ignoreDataSourceViewChanged   true;      base.RequiresDataBinding   false;      this.MarkAsDataBound();     data.Select( this._arguments,  new DataSourceViewSelectCallback( this.OnDataSourceViewSelectCallback)); } 很明显_ignoreDataSourceViewChanged字段就是专门解决这个问题的。也就是说控件团队已经意识到会存在这种问题所以在这里留了一手。但是为什么这一手没有生效呢 我们来看看DropDownList的父类 ListControl杯具它重载了PerformSelect protected  override  void PerformSelect() {      this.OnDataBinding(EventArgs.Empty);      base.RequiresDataBinding   false;      base.MarkAsDataBound();      this.OnDataBound(EventArgs.Empty); } 并且没有调用父类的方法……这也说明了ListControl之下的几个控件BulletedList、CheckBoxList、 DropDownList、ListBox、RadioButtonList全部都存在同样的问题当然解决方法也是一样的。   两年多没写博客了最近对技术有点伤感 我不相信神话我只相信汗水我不相信命运我只相信双手 分类: C# 本文转自大石头博客园博客原文链接http://www.cnblogs.com/nnhy/archive/2010/05/04/1727576.html如需转载请自行联系原作者
http://www.hkea.cn/news/14283591/

相关文章:

  • 买空间去哪个网站网络营销方式ppt
  • 网站建设开发方式包括哪些单页面网站
  • 公司怎么开网站邢台信息港123招聘
  • 网站运营工作内容wordpress 长页面
  • 龙华网网站建筑网站图纸
  • 锦州网站建设渠道网站模板怎么弄的
  • 医疗网站建设 中企动力百度网站官网入口
  • 2019一个网站开发要多少钱wordpress运行加速
  • 瑞金网站建设推广二级栏目网站
  • 上海网站建设找哪家seo做的最好的网站
  • 微商的自己做网站叫什么软件下载iis 配置 wordpress
  • 响应式网站 768 320黑河做网站
  • 筑梦网站建设wordpress zh_cn.po
  • 网站关键词是什么沈阳模板建站
  • 西安建设网站公司app在线制作平台有哪些
  • html5开发的网站怎样做产品推广
  • 网站怎样制作吸引人wordpress文章展示相册
  • 做美工比较好的网站网站建设 深圳
  • 网站在百度上搜不到了网站主页设计素材
  • 临沂网站服务器价格专业网站设计联系方式
  • 婚庆公司网站设计注册个体可以做网站吗
  • 网站开发及后期维护404做的好的网站
  • 芜湖南陵网站建设建设多语种网站
  • 河南网站托管win10优化工具
  • 网站开发知识产权归属成都兼职做网站
  • 网站的关键词策略wordpress宝宝模板
  • 简述网站建设方案类型微信手机网站源码
  • 商务网站的特点金数字网站建设
  • 网站logo更换注册了域名之后如何建立一个网站
  • 做汽车网站怎么挣钱推广网站广告有哪些