ASP.NET控件开发基础(17)

http://tech.ddvip.com   2007年09月02日    社区交流

内容摘要:ASP.NET控件开发基础

  成员如下(可以看上面类图)

  1.三个项样式和三个样式属性

  2.公开DataSource数据源属性,一个模板属性

  3.SelectedIndex索引属性

  前面的相信大家都很容易明白,其中的三个项样式我们需要为其重写视图状态管理,不熟悉可以看以前的随笔,这里不再重复.

  SelectedIndex属性比较复杂,这里重点介绍此属性

  SelectedIndex索引属性默认为-1,

  我给出了注释,在赋值前先记录下了上次的选中项,为恢复样式而做准备

        //获取上次选中项
        int oldSelectedIndex = SelectedIndex;
        ViewState["SelectedIndex"] = value;

  当第一次更改SelectedIndex属性时只执行下列代码(将此项标记为选中项),因为初始化时的没有oldSelectedIndex,不需要恢复样式

//第一次执行此项,并一直执行
          if ((value != -1) && (table.Rows.Count > value))
          {
            item = (TemplatedListItem)table.Rows[value];
            item.SetItemType(ListItemType.SelectedItem);
          }

  再次执行时,恢复oldSelectedIndex选中项样式

          //第一次选中项不执行
          if ((oldSelectedIndex != -1) && (table.Rows.Count > oldSelectedIndex))
          {
            item = (TemplatedListItem)table.Rows[oldSelectedIndex];
            //判断项类型,为了将选中项还原为数据项
            if (item.ItemType != ListItemType.EditItem)
            {
              ListItemType itemType = ListItemType.Item;
              if (oldSelectedIndex % 2 != 0)
                itemType = ListItemType.AlternatingItem;
              item.SetItemType(itemType);
            }
          }

责编:豆豆技术应用

正在加载评论...