日期:2014-05-17  浏览次数:20365 次

关于.NET用户控件的问题
现在的问题是这样的,我要做一个用户控件,做好以后需要在其他项目里引用。
  另外,这个用户控件需要从不同的数据库里读取数据,但是SQL语句都是一样的,只是web.config的ConnectionString连接字符串不同而已,所以需要传一个ConnectionString值给用户控件。
  第二个问题我应该知道么做了,关键是第一个问题:怎么在其他项目里引用。


------解决方案--------------------
通过相对路径:LoadControl("../usercontrols/control.ascx");
------解决方案--------------------
那不如写一个组件....
------解决方案--------------------
用户控件有两种,你是web用户控件还是自定义用户控件啊
自定义控件在工具箱里添加引用就可以,web用户控件在ASPX源码里添加引用
------解决方案--------------------
你这种情况应该写自定义用户控件比较合理
------解决方案--------------------
1.自定义控件:
比如直接继承自TextBox之类的,在webconfig中配置一下,就可以和普通控件一样使用了.

2.UserControl:
每个Page都有LoadControl方法,可以加载制定的ascx文件.
不过要注意,UserControl中的某些服务器控件使用的路径与Page的路径可能不一样,在使用某些控件的属性时,如果涉及到相对Url路径,那么UserControl中会认为Url路径是相对ascx文件的路径,而不是相对Page的路径.
------解决方案--------------------
探讨
1.自定义控件:
  比如直接继承自TextBox之类的,在webconfig中配置一下,就可以和普通控件一样使用了.

2.UserControl:
  每个Page都有LoadControl方法,可以加载制定的ascx文件.
  不过要注意,UserControl中的某些服务器控件使用的路径与Page的路径可能不一样,在使用某些控件的属性时,如果涉及到相对Url路径,那么UserControl中会认为Url路径是相对ascx文件的路径,而不是相对Page的路径.

------解决方案--------------------
把.ascx和.cs文件直接拷贝过去吧。

好的软件,从BLL开始所有重要的东西都不在界面模块中,界面模块(ascx以及codeFile)中只有数据绑定和处理最简单的行为(每一个功能往往只有3、4行代码)。

你说ascx要用在其它其它项目中,我不知道你如何保证不同的项目都有同样的BLL呢?