zoukankan      html  css  js  c++  java
  • C#实现动态添加用户控件

      在项目即将上线的时候,发现项目中动态生成的"多选下拉框控件"存在一个功能上的问题。

          需要实现功能:

        1、该控件跟据树节点生成,也就是说选择不同的树节点会生成多个不同的"多选下拉框控件"、不同的子控件下拉数据和不同初始选项。

               2、该控件作为查询条件控件,所以子控件编号必须己经确定,我们需要通过子控件控件编号及选择项去查询数据。

          如图:

          

           //codeTypeNoCollections 类别集合
      foreach (string codeTypeNo in codeTypeNoCollections)
      {
         Control control = Page.LoadControl("~/UserControls/UclIndexAttribute.ascx");
         ((UclIndexAttribute)control).ID = codeTypeNo;
      }

      我们确定用代码类编码(codeTypeNo)做为子控件名称。

      也就是说当查询事件或者其它事件触发,我们需要重新生成控件,因为新生成控件的子控件ID和原子控件ID相同,所以会加载原子控件数据及原选择项。

      这个时候问题就出来了,当树选项发生改变,也可能会生成相同ID的子控件,这个不满足要求,我们需要的是当树选项发生改变时重新初始化控件,包括子控件数据及选择项。

      我首先想到的是当树选项发生改变,清空控件缓存,按照这个思路在控件里鼓捣了半天,将就着搞定了。
      但是总觉得这样不好,这问题应该很简单,后来决定给子控件ID命名为代码类编码+"_"+树选项编码,也就是树选顶改变,属性编号肯定改变;

          一个这样的问题搞了几个小时,真是浪费时间。

  • 相关阅读:
    STM32使用之GPIO
    STM32时钟分析
    stm32 rcc 时钟
    LCD与FSMC的连接原理
    经典算法题随机从连续的100个不重复数中取出100个不重复随机数
    所有win7机器都必须要做的一个优化!作用:让系统流畅,减少卡顿
    WebService返回自定义对象遇到的错误
    获取浏览器信息
    60行代码的俄罗斯方块
    SVN常用命令
  • 原文地址:https://www.cnblogs.com/Nadim/p/1735321.html
Copyright © 2011-2022 走看看