首页 新闻 会员 周边

多次引用自定义控件

0
悬赏园豆:30 [已解决问题] 解决于 2012-11-17 19:27

c#.net项目,做了一个用户控件,主要实现了js弹出选择的功能,然后将选择的数据,保存在页面中。其中依赖的数据是该控件中获取数据库输出到前段控件中。

如,省市联动选择。

现在一个页面中需要多次引用该控件,那需要重复查询数据库。怎样可以实现多次引用,只查询一次数据库。

 

首先,想到了缓存,缓存可以实现吗?

问题补充:

需要后台取值。用户控件的方式是不能改变的。有没有.net配置方法可以实现

lucika.zh的主页 lucika.zh | 初学一级 | 园豆:62
提问于:2012-09-21 20:03
< >
分享
最佳答案
0

用ajax,多个控件用的数据都存放在一个js全局变量里。

即每个控件显示时都去判断一下,是否已经有数据了,有就用原来的,没有就ajax去取。

收获园豆:25
向往-SONG | 老鸟四级 |园豆:4853 | 2012-09-21 23:42

这是一种解决方法。现在想知道有没有.net配置方法可以实现

lucika.zh | 园豆:62 (初学一级) | 2012-09-23 07:17

@lucika.zh: 

当然有,比如你页面继承一个有GetProvince方法的基类ProvinceDataPage:

object _data;

T GetProvince<T>(Func<T> getData){

  if(_data==null){

    _data=getData();

  }

  return _data as T;

}

 

用户控件:

ProvinceDataPage pdp=this.page as ProvinceDataPage;

if(pdp!=null){

  xx控件.DataSource=

  pdp.GetProvince<DataTable>(()=>{

    return xxx.从数据库取数据();

  });

}

向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-23 10:55

@向往-SONG: 谢谢!这种方法比较巧妙,似乎理解了其中的奥妙。

lucika.zh | 园豆:62 (初学一级) | 2012-11-17 19:26
其他回答(1)
0

方法很多啊,缓存当然可以,session也可以

还有一种方法:用户控件最后也都是html代码,完全可以不使用用户控件,在后台StringBuilder起来,然后赋值给前台

收获园豆:5
田林九村 | 园豆:2367 (老鸟四级) | 2012-09-21 20:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册