仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 504|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之web组合框的完成办法

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:12:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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来写程序就可以说自己高档了
山那边是海 该用户已被删除
9#
发表于 2015-3-24 23:34:48 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
再见西城 该用户已被删除
8#
发表于 2015-3-17 20:08:12 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
深爱那片海 该用户已被删除
7#
发表于 2015-3-11 03:09:58 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
莫相离 该用户已被删除
6#
发表于 2015-3-2 05:56:56 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
再现理想 该用户已被删除
5#
发表于 2015-2-11 08:42:10 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
小魔女 该用户已被删除
地板
发表于 2015-2-5 09:27:42 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-27 09:36:03 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
若天明 该用户已被删除
沙发
发表于 2015-1-18 22:50:45 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表