假如这个世界上只剩下你一个人,当你正坐在屋子里的时候,这时突然响起了敲门声...
表单控件的副产品——查询控件
上一篇 /
下一篇 2008-05-29 19:31:58
/ 个人分类:web
查看( 46 ) /
评论( 0 )
查询控件
2~,o9[@(ZC:bng0
1XU;dJ8t,Q0
温故而知新
pT3I#O Qu9v`z@0
能自己“跑”的表单控件,思路,雏形,源码。vs2005版本
_J2u8ns8je0
*z_G9b0?C#c0
表单控件续(1)——应用接口来简化和分散代码
F9m(DS(F3?l0
ITPUB个人空间/l(S0{ B z|
当初在写表单控件的时候,突然想到,这个表单控件稍微修改一下不就是一个查询控件了吗?ITPUB个人空间:ni$d
aWVYT \
ITPUB个人空间MC'b*W
a
那么查询控件需要做的什么事情呢?ITPUB个人空间0G\2V#v!OT]e
1、自己描绘控件,比如能够自己添加文本框、下拉列表框这一类的控件。ITPUB个人空间:jUS
W$VTO
2、可以自己获取用户输入的信息,根据查询方式组合where 后面的 SQL语句 。
:n!N"UI+@L Ne%B0
dO|Po0
是不是和表单控件很像呢?ITPUB个人空间 tO's6Z0V9\*}O7J
ITPUB个人空间Xt%w+A.q6B O6dR
在表单控件的SaveData()里面我们可以得到字段名称和对应的用户输入的信息,那么我们就可以写成这种方式。
g+KWa!TU0
for (int i = 0; i < info.Length; i++)
6y1P;W;Qh
M0w0
{ITPUB个人空间6C6K)a)x Lk[b
"e|E'dt#MCJ8ILv0
iCntl = this.FindControl("c_" + info.ColSysName) as IGetControlValue;ITPUB个人空间 H:{Vh ~ `BJ
if (iCntl != null)ITPUB个人空间)MBx(`,q
query = ColSysName + "like '%" + iCntl.GetControlValue() + "%'";
EY{T:J Q"U3] ibN1b0
ITPUB个人空间
^*d'P
[/_W+\
}ITPUB个人空间2?#B%O/Jr\8i7SH5X
wM&P)Hac0
当然并不是所有的查询都是只用 like 就可以搞定的,这里需要一个查询方式的属性,于是我们可以扩展一下ControlInfos 加一个属性(FindKind),用来记录查询方式。
n$w$D#X*P0
D(N
M
U)Tj/b0
然后根据这个属性,我们就可以来组合SQL语句了,准确的说是where 后面的SQL语句。目前的方法还是需要使用case 。ITPUB个人空间Tq~3s)V5p:uk
K}A;A.Bd+e0
string str = iCntl.GetControlValue()ITPUB个人空间4r$UES2P8a.dV'?
switch ( infos.FindKind)