|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;web 因为html控件中没有组合框,以是web 组合框必要用特别办法机关,固然机关办法有良多了:
1、使用文本框与列表框叠加而成,这个必要用CSS的clip,用的较多,可是必要相对定位,并且定位必要准确。
2、一个文本框+ 一个新的页面,这类办法用的也很多,也就是载进页面时只装载文本框,只要必要的时分才经由过程代开一个新页面的体例翻开列表。
3、使用文本框与一个列表容器并排摆放,可是列表容器需界说为相对定位,可是不给其left和top的界说。这个容器便可所以<div><span><table>等容器,也能够是列表控件。
上面就使用第三种办法完成组合框,这个组合框使用的容器是<div><table></table></div>,并且撑持静态过滤,也就是当你在文本框中输出用于过滤的文本后,就能够依据输出的文本,主动过滤列表,也减少拔取局限。
中心代码以下:
<scriptlanguage="javascript">
/////////////////静态列表start ////////////////////////////////
//用于由一个文本框和一个div构成的用于依据别号静态选择列表
varifMouseOver=0;
varPatA=/[^x00-xff]+/; //一个正则表达式,当文本框中的笔墨切合这个正则时,就不举行过滤
functiondl_mouseOver(p1)
{
ifMouseOver=1;
}
functiondl_mouseOut(p1)
{
ifMouseOver=0;
}
functiondl_showDiv(p1)
{
varDivObj=document.getElementById(p1);
if(DivObj)
{
if(DivObj.style.display==none)
DivObj.style.display=;
else
DivObj.style.display=none;
}
}
functiondl_hideDiv(p1)
{
varDivObj=document.getElementById(p1);
if(DivObj)
{
if(DivObj.style.display==&&ifMouseOver==0)
DivObj.style.display=none; }
}
functiondl_InsertData(p1,p2,p3)
{
varDivObj=document.getElementById(p2);
vartextObj=document.getElementById(p3);
if(textObj)textObj.value=p1.innerText;
if(DivObj){DivObj.style.display=none;}
}
vars_value="";
functiondl_sFilter(p1,p3,p5,p7)
{
//varkCode=event.keyCode;
//varccds=document.selection.createRange();
//ccds.pasteText=;
vartmpP1=p1.value;
if(PatA.test(tmpP1))returnfalse;
//document.selection.clear();
if(tmpP1!=s_value)
{
s_value=tmpP1;
if(document.getElementById(p3))
document.getElementById(p3).style.display=;
for(varn=0;n<p5.length;n++)
{
if(p5[n].indexOf(tmpP1)>=0)
{
if(document.getElementById(p7+n))
document.getElementById(p7+n).style.display=;
}
else
{
if(document.getElementById(p7+n))
document.getElementById(p7+n).style.display=none;
}
}
}
}
/////////////////// 静态列表 end ////////////////////////////////////
</script>
<%subcreate_Dy_select(p_arrayname,byrefp_rs,p_alias_field,p_main_field,p_inputname,p_divid,p_tr_id)
p_arrayname 天生的js数组名字
p_rs 数据库纪录集
p_alias_field别号字段名,用于过滤,假如与p_main_field不异,就是我们罕见的组合框过滤办法
p_main_field 主字段名
p_inputname 文本框名字
p_divid div容器的ID
p_tr_id 表格行id前缀
r_count=p_rs.RecordCount
ifr_count>0then
%>
<!-- 静态列表代码 start -->
<scriptlanguage="javascript">
var<%=p_arrayname%>=newArray(<%=r_count%>)
varmm=0;
</script>
<%endif%>
<divid="<%=p_divid%>"style="border:1solid#FF0000;cursor:default;width:150;height:200;overflow-y:auto;background-color:#e0e0e0;position:absolute;display:none">
<tablewidth=100%>
<%
ifr_count>0then
dimi
i=0
dowhilenotp_rs.EOF
o_alias=p_rs(p_alias_field)
%>
<scriptlanguage="javascript">
<%=p_arrayname%>[mm]=<%=o_alias%>;
mm++;
</script>
<trid="<%=p_tr_id%><%=i%>"><tdwidth=100%>
<%=p_rs(p_main_field)%>
</td></tr>
<% i=i+1
p_rs.MoveNext
loop
endif
%>
</table>
</div>
<!-- 静态列表代码 end -->
<%endsub%> 挪用办法:
<% s_arrayname ="js_array_1"
s_alias_field ="cz_alias"
s_main_field ="cz_name"
s_inputname ="cz"
s_divid ="selectList_1"
s_tr_id ="tr_id_1"
%>
<input name="<%=s_inputname%>" type="text" onkeyup="dl_sFilter(this,<%=s_divid%>,<%=s_arrayname%>,<%=s_tr_id%>);"><br>
<%
Callcreate_Dy_select(s_arrayname,rs,s_alias_field,s_main_field,s_inputname,s_divid,s_tr_id)
%>
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了 |
|