06 DW.NET在C#中应用的特殊注意事项
今天,总结一下在C#中使用DW.NET的问题:
(1)使用C#程序的DW.NET显示数据窗口时,第一个遇到的问题就是64位运行C#编译后的代码不成功的问题。必须将使用DW.NET的部分以32位方式运行。
解释:PB12.5.1的各个DLL都是32位的,如果在C#程序中使用到了这些32位的DLL,而连接池却设置成64位,那么肯定运行不起来的。必须换成32位的连接池。这个PB不变成64位的话就无法解决。(至少我目前是这么认为的)。
(2)混合使用MVC和DW.net, 必须将DW.NET部分的程序独立于MVC的ROUTER控制范围之外。
解释:因为DW.NET是服务器控件,必须以传统的.NET方式与服务器交互,而MVC本质上是通过AJAX去与服务器交互。
(3)画数据窗口时的注意点:
第一个注意点:画数据窗口时,注意避免line的使用。
解释:各个版本的DW.NET都存在同一个问题,那就是在浏览器上(大部分浏览器)显示线的时候,会出现位置偏差,基本上,你画出来的线的X,Y位置都是偏下,偏右,会让本来好看的界面变得非常难看。如下图:
那么用什么替代线呢,PB的DW.NET这个BUG估计他们没有闲工夫改。那么我们就用文本来替代线。
l 1,添加文本
l 2,text改为空白。(注意要把文本的默认值text改为空白,不然在显示的时候你尽管看不到这个text,可是在另存为PDF的时候就会毫不客气的显示出来text字符)
l 3,将这个文本的前景色设置为无色,背景色设置为黑色。
l 如果是横线,那么就把文本的Height属性设置为4,如果是竖线,就把文本的Width属性设置为4,如果是2个点宽带的线,对应的高度或宽度值设置为8。(当然,设置为7也可以。),如果是斜线?那就没办法了,自己想招吧。
同样的,rectangle,Oval都要避免使用。现在看重新修改成“文本线”的图形:
是不是整齐多了?
第二个注意点:一定要注意中文的字体设置。
中文的字体,如果你在CS程序中,即使设置了英文的字体,WINDOWS也会自动帮你纠正。可是如果在WEB条件下,如果你还这么做,那么等待你的就是乱码。所以不要怕麻烦,一旦估计有汉字,那么务必设置为宋体或黑体。这两个字体可以正确显示中文和英文,不会出现麻烦的。
但是有人会问:那我显示日本语,朝鲜文,甚至法语、瑞典特殊字符,阿拉伯语字符,藏语,蒙古语咋办?就一句话:我不会,自己试。估计也差不多是设置为特殊字体。
第三个注意点:尽量不要使用图形
图形在DW中的显示,只要路径正确了应该是能显示出来的。我试验过很多次,都是在浏览器上显示正常,可是在另存为PDF时,就死活不会带上图片,非常郁闷。也不知道是什么原因。也许是文件访问权限上的原因,也许是别的,反正没成功过。
第四个注意点:不要使用嵌套数据窗口。
嵌套数据窗口在浏览器上简直惨不忍睹。不说了。
第5个注意点:GRID格式的数据窗口,在浏览器上的线非常难看,最好是自己改造成文本线,并且变成TABULAR格式。因为在浏览器上你也无法自己调整宽度。
(4)一般使用DW.NET都是用来显示表格的。而不用来做数据增删改操作。这不是DW.NET擅长的。
C#中,使用dw.insertrow(0), POSTBACK之后,DW.NET这个服务器控件能保存DW的状态,比如GETITEM什么的都可以。但是,如果先连接数据库,然后RETRIEVE,等POSTBACK后,你就无法获得DW的任何信息,此时Rowcount是0!
一般我建议这样使用:用C#本身的数据连接去获取数据,进行数据的增删改查操作,需要展示固定坐标格式的表格时,使用DW.
今天就想到这些。
其实很多其他的控件能达到DW.NET的效果,但是仅就方便性和熟悉程度来说,我还是觉得DW.NET在展示数据的能力上真的非常不错。仅代表个人观点。
另外,推荐一下黄国酬的EXTPB.NET, 表现数据窗口真的没的说,一个字,很赞!