解释ASP.NET中用户控件UserControl不能被拖曳大小的原因

有人问,在Visual Studio 2008的组件Visual Web Developer中,想要像Button那样拖曳用户控件UserControl的大小,但不能拖,为什么?

其实比较简单,当我们在Visual Web Developer中拖曳控件的边框时,实际是给控件设置width和height,而这是通过控件对应的html元素的css实现的。这里有一个基本前提:该控件必须对应有客户端html元素。如果没有html元素对应,那么width和height就没有施加的对象,Visual Web Developer就会设置“不可拖曳”。用户控件不可拖曳大小的原因应该就是如此。

类似的情况举例:

GridView对应<table></table>(外层套一个div),所以可以拖曳大小;

DataList和Repeater不对应任何html元素,所以不可拖曳大小;

同样道理,Panel(对应div)可以拖曳大小,而Literal、PlaceHolder不可拖曳大小。

像诸如SqlDataSource、ObjectDataSource这种数据源控件,完全运行在服务器端,肯定不可拖曳大小。

你可能感兴趣的:(asp.net)