iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >OAF开发中LOV相关技巧有哪些
  • 727
分享到

OAF开发中LOV相关技巧有哪些

2024-04-02 19:04:59 727人浏览 八月长安
摘要

小编今天带大家了解OAF开发中LOV相关技巧有哪些,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“O

小编今天带大家了解OAF开发中LOV相关技巧有哪些,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“OAF开发中LOV相关技巧有哪些”的知识吧。

在OAF开发中,LOV的使用频率是很高的,它由两部分构成一是页面上的LOV输入框(如OAMessageLovInputBean),二是弹出的LOV模式窗口(OAListOfValueBean)。用户选择LOV的按钮就会弹出LOV窗口,用户在LOV窗口查询并选择了值,可以返回到页面上的LOV输入框。在这里就不赘述如何创建LOV,只说一些平时会碰到的应用:  

1.控制LOV的查询结果  
2.LOV相关事件  
3.动态LOV  
4.LOV Choice  
一,控制LOV的查询结果  

1,使用Criteria  

很多种情况下都会用到用某一个Item或者某几个Item来控制LOV的结果,例如页面上有一个Item的LOV和一个Organization,因为Item是有库存组织的,所以就有这样的需求,我选择了某一个库存组织的时候,Item的LOV只显示该库存组织下面的Item。  

要实现这个功能,首先需要将Organization放入LOV查询语句作为结果集(LOV的VO中加入Oraganization_Id这一列),然后在Item的LOV中新建一个Mapping,Mapping中LOV Region Item选择OrganizationId(LOV中的),而Criteria选择页面上的OrganizationId,注意,这两个不是同一个Organization。一个是LOV中的,一个是页面上的。  

Criteria设置了相应的Item时,在弹出LOV窗口时,会作为验证字段带入LOV窗口,LOV视图对象会自动绑定该值作为查询条件。因为这个自动绑定是对查询的结果集再进行一次条件查询,所以需要将Organization_Id作为查询结果集。  

2,Passive Criteria  

LOV的Criteria Item也可以手动绑定,也就是在主页面上的作为Criteria Item的字段在传入LOV Region后并不和LOV的查询自动绑定,而是由开发员动态去绑定。这种方法我认为是为了一些高级的查询所设的,例如需要根据传入的一个Flag字段,在查询条件中加入exists…这样的查询条件。  

使用Passive Criteria,和LOV的普通Criteria Mapping一样,选择LOV Region Item以及Criteria Item,然后将Programmatic Query选择为True,这样,LOV就不会动态绑定查询条件了。之后,我们在LOV的Region上创建一个CO,在proce***equest中得到验证字段: 

  1. public   void  proce***equest(OAPageContext pageContext, OAWEBBean webBean)  

  2. {  

  3.    super .proce***equest(pageContext, webBean);  

  4.   OAApplicationModule am = pageContext.getApplicationModule(webBean);  

  5.   Dictionary passiveCriteria = pageContext.getLovCriteriaitems();  

  6.    //此处的LookupType指的是Mapping中的Lov Region Item的ID 

  7.   String lovCriteria = (String)passiveCriteria.get( "LookupType" );  


  8.   OAViewObject lovVO = (OAViewObject)am.findViewObject( "FndLookupTypeLovVO1" );  

  9.    //根据得到的验证字段限定查询结果 

  10.   lovVO.setWhereClause( "" );  

  11.   lovVO.executeQuery();  

  12. }   

二、LOV事件  

对于MessageTextInput,CheckBox等,可以使用Client Action来触发事件,假如一个CheckBox,可以为它做一个fiReaction来控制比如打勾了以后改变某一个字段的值或者一些类似的控制。这些事件可以在页面CO中的processFORMRequest中使用pageContext.getParameter(EVENT_PARAM)获得。但是MessageLovInput是没有fireAction事件的,实际上Lov操作的时候已经存在了一些事件,不需要我们去定义的,可以直接通过pageContext.getParameter(EVENT_PARAM)得到LOV事件。  

LOV事件有三种,lovPrepare、lovUpdate、lovValidate(由pageContext.getParameter(EVENT_PARAM)返回),它们都是在页面CO的processFormRequest中触发的。当点了Lov上的手电筒时,会触发事件lovPrepare。当选中了某一个Lov返回到本页面是,会在formRequest中触发事件lovUpdate。当在Lov输入框中输入一个唯一的值时,此时会触发Lov验证,这里需要注意的是如果在输入框中输入一个不唯一的值,那么验证会自动的打开Lov窗口让你进行选择,此时在formRequest中是不会触发lovValidate事件的。当在选择了LOV选择的值进行相应的页面处理(例如控制其他字段是否显示等),就可以在processFormRequest中通过对Lov事件的判断并做相应处理。 

  1.  

  2. super .processFormRequest(pageContext, webBean);  

  3. OAApplicationModule am = pageContext.getApplicationModule(webBean);  

  4. if ( "ItemCode" .equals(pageContext.getLovInputSourceId()))  

  5. {   


  6.     

  7.    if (    "lovUpdate" .equals(pageContext.getParameter(EVENT_PARAM))  

  8.      ||  "lovValidate" .equals(pageContext.getParameter(EVENT_PARAM)))  

  9.   {  

  10.       

  11.     am.invokeMethod( "controlRevSwitcher" ,  new  Serializable[]   

  12.                                   {pageContext.getParameter(SOURCE_PARAM),  

  13.                                    pageContext.getParameter( "OrganizationIdFV" )});  



  14.       

  15.     OAAdvancedTableBean tableBean =   

  16.         (OAAdvancedTableBean)webBean.findChildRecursive( "VenTrxLinesAdvTbl" );  

  17.     tableBean.queryData(pageContext);  

  18.   }        

  19. }

在上例的例子中,由于LOV字段是基于VO的,所以得到所选的LOV的值可以在VO中得到。但是对于不基于VO的LOV,如果需要在页面事件发生的时候就得到选择得到的LOV值,需要用以下方法来获取: 

  1. // Form was submitted because the user selected 

  2. // a value from the LOV modal window, 

  3. // or because the user tabbed out of the LOV input. 

  4. // Find out which LOV input triggered the event. 

  5. String lovInputSourceId = pageContext.getParameter(SOURCE_PARAM);  

  6. // Find out the result values of the LOV. 

  7. Hashtable lovResults =  

  8.     pageContext.getLovResultsFromSession(lovInputSourceId);  

  9. if  (lovResults !=  null )  

  10. {  

  11.     System.out.println( "lovResults" +lovResults);  

  12.      // Update the page depending on the value chosen by the user. 

三、动态LOV  

动态LOV的应用一般很少。在之前沈辉写的一个文档中,是通过先创建一个LOV后,然后在页面事件发生时动态的去改变LOV的sql实现的。而我的方法是用直接动态创建VO去和LOV Region中的Item进行关联来实现的。  

LOV是通过页面调用我们创建好的Region来实现的,所以这个LOV Region是LOV最为关键的部分,所以实际上,在LOV VO还不存在的时候,只要有Region,我们的LOV就可以创建起来。所以我们可以先创建一个空壳Region,然后在主页面打开的时候再动态的创建LOV VO,最后将VO与Region中的Table关联。 

首先,需要创建一个LOV Region,这个Region并不和任何VO关联,在我的例子中,我创建了5个MessageStyledText,5个FormValue。这些字段字段此时只是设置了Prompt属性,其他属性都是默认,包括Data Type。

接下来,在主页面的Proce***equest创建LOV Bean(当然也可以在其他页面动作的时候创建LOV)。并且创建LOV VO。

  1. import  java.io.Serializable;  


  2. import  java.util.ArrayList;  

  3. import  java.util.Hashtable;  


  4. import  oracle.apps.fnd.common.VersionInfo;  

  5. import  oracle.apps.fnd.framework.OAApplicationModule;  

  6. import  oracle.apps.fnd.framework.webui.OAControllerImpl;  

  7. import  oracle.apps.fnd.framework.webui.OAPageContext;  

  8. import  oracle.apps.fnd.framework.webui.beans.OAWebBean;  

  9. import  oracle.apps.fnd.framework.webui.beans.layout.OAHeaderBean;  

  10. import  oracle.apps.fnd.framework.webui.beans.message.OAMessageLovInputBean;  


  11. public   void  proce***equest(OAPageContext pageContext, OAWebBean webBean)  

  12. {  

  13.    super .proce***equest(pageContext, webBean);  

  14.   OAApplicationModule am = pageContext.getApplicationModule(webBean);  


  15.     


  16.   OAHeaderBean headerBean = (OAHeaderBean)webBean.findChildRecursive( "TestHdRN" );  

  17.   OAMessageLovInputBean lovInput = (OAMessageLovInputBean)createWebBean(pageContext, LOV_TEXT,  null ,  "InputTest" );  


  18.   headerBean.addIndexedChild(lovInput);  


  19.    // Specify the path to the base page. 

  20.   lovInput.setAttributeValue(REGION_CODE,  "/alther/oracle/apps/cux/checkboxtest/webui/CheckBoxTestPG" );  

  21.    // Specify the application id of the base page. 

  22.   lovInput.setAttributeValue(REGION_APPLICATION_ID,  new  Integer( 30001 ));      


  23.    //此处的Region就是刚才创建的Region 

  24.   lovInput.setLovRegion( "/alther/oracle/apps/cux/lov/webui/CommonLovRN" ,  );  


  25.   lovInput.setUnvalidated( false );  

  26.   lovInput.setPrompt( "Dynamic Lov" );  


  27.    //增加Mapping关系,由于LOV的Mapping在主页面初始化时就会使用到,所以必须创建一些空的Item来做Mapping,否则会报错 

  28.   lovInput.addLovRelations(pageContext,    "InputTest" ,  // base page item 

  29.                                            "DisplayItem1" ,  // lov item 

  30.                                           LOV_RESULT,  // direction 

  31.                                           LOV_REQUIRED_NO);  

  32.   lovInput.addLovRelations(pageContext,    "InputTest" ,  // base page item 

  33.                                            "DisplayItem1" ,  // lov item 

  34.                                           LOV_CRITERIA,  // direction 

  35.                                           LOV_REQUIRED_NO);      


  36.   lovInput.addLovRelations(pageContext,    "TestItem" ,  // base page item 

  37.                                            "DisplayItem2" ,  // lov item 

  38.                                           LOV_PASSIVE_CRITERIA,  // direction 

  39.                                           LOV_REQUIRED_NO);   


  40.     

  41.   ArrayList paramList =  new  ArrayList();  

  42.   String voName =  "FndUserLovVO2" ;  

  43.   String sql  =     "SELECT fu.user_id,"  +   

  44.                           "                fu.user_name,"  +   

  45.                           "                fu.start_date"  +   

  46.                           "    FROM fnd_user fu" ;  


  47.    //paramList是用来创建LOV并在关联时都会用到的每个Item的Attribute 

  48.   paramList.add( new  String[]{ "UserId" ,  "USER_ID" ,  "oracle.jbo.domain.Number" ,  null ,  "Hide" ,  null });  

  49.   paramList.add( new  String[]{ "UserName" ,  "USER_NAME" ,  "java.lang.String" ,  "100" ,  "Display" ,  "SearchAllow" });  

  50.   paramList.add( new  String[]{ "StartDate" ,  "START_DATE" ,  "oracle.jbo.domain.Date" ,  null ,  "Display" ,  null });  

  51.    //调用AM方法创建VO 

  52.   am.invokeMethod( "createVO" ,  new  Serializable[]{voName, sql, paramList},  

  53.                              new  Class[]{String. class , String. class , paramList.getClass()});  


  54.   am.getOADBTransaction().putTransientValue( "LovVOInstance" , voName);  

  55.   am.getOADBTransaction().putTransientValue( "LovAttribute" , paramList);  


  56. }   

这是AM中创建VO的方法: 

  1. import  java.sql.Types;  


  2. import  java.util.ArrayList;  


  3. import  oracle.apps.fnd.framework.server.OAApplicationModuleImpl;  

  4. import  oracle.apps.fnd.framework.server.OADBTransaction;  

  5. import  oracle.apps.fnd.framework.server.OAViewDef;  


  6. import  oracle.jbo.AttributeDef;  


  7. public   void  createVO(String voName, String sql, ArrayList list){  

  8.     OADBTransaction dbtx = getOADBTransaction();  

  9.     String[] attribute =  new  String[ 6 ];  

  10.      int  types = - 9999 ;  

  11.     OAViewDef viewDef = dbtx.createViewDef();  


  12.     viewDef.setSql(sql);  

  13.     viewDef.setExpertMode( true );  

  14.     viewDef.setViewObjectClass( "oracle.apps.fnd.framework.server.OAViewObjectImpl" );  

  15.     viewDef.setViewRowClass( "oracle.apps.fnd.framework.server.OAViewRowImpl" );  


  16.      for ( int  i =  ; i < list.size(); i++){  

  17.         attribute = (String[])list.get(i);  

  18.          if ( "java.lang.String" .equals(attribute[ 2 ])){  

  19.             types = Types.VARCHAR;  

  20.         }  

  21.          else   if ( "oracle.jbo.domain.Number" .equals(attribute[ 2 ])){  

  22.             types = Types.NUMERIC;  

  23.         }  

  24.          else   if ( "oracle.jbo.domain.Date" .equals(attribute[ 2 ])){  

  25.             types = Types.DATE;  

  26.         }  


  27.          if ( "java.lang.String" .equals(attribute[ 2 ])){  

  28.             viewDef.addSqlDerivedAttrDef(   attribute[ ],   

  29.                                             attribute[ 1 ],   

  30.                                             attribute[ 2 ],   

  31.                                             types,  

  32.                                              false ,  

  33.                                              true ,  

  34.                                             AttributeDef.UPDATEABLE,  

  35.                                             Integer.parseInt(attribute[ 3 ]));  

  36.         }  

  37.          else {  

  38.             viewDef.addSqlDerivedAttrDef(   attribute[ ],  

  39.                                             attribute[ 1 ],   

  40.                                             attribute[ 2 ],   

  41.                                             types,  

  42.                                              false ,  

  43.                                              true ,  

  44.                                             AttributeDef.UPDATEABLE);            }  

  45.     }  


  46.      if (findViewObject(voName) !=  null ){  

  47.         findViewObject(voName).remove();  

  48.     }  


  49.     createViewObject(voName, viewDef);  

  50. }   

最后,在LOV Region的CO中,加入关联的代码。这里需要注意一点,由于我们的LOV VO是创建在主页面的AM下的,所以LOV Region的AM必须和主页面的AM一致。否则,在主页面的变量就无法传到LOV Region中。

  1. public   void  proce***equest(OAPageContext pageContext, OAWebBean webBean)  

  2. {  

  3.    super .proce***equest(pageContext, webBean);  

  4.   OAApplicationModule am = pageContext.getApplicationModule(webBean);  


  5.   String voInstance   = (String)am.getOADBTransaction().getTransientValue( "LovVOInstance" );  

  6.   ArrayList paramList = (ArrayList)am.getOADBTransaction().getTransientValue( "LovAttribute" );  

  7.   String[] attribute  =  new  String[ 6 ];  

  8.    int  dispalyIndex    =  1 ;  

  9.    int  hideIndex       =  1 ;  


  10.    //关联VO 

  11.   ((OAListOfValuesBean)webBean).setViewUsageName(voInstance);     


  12.    //将Region中的MessageStyledText都设置为不显示 

  13.    for ( int  i= 1 ; i<= 5 ; i++){  

  14.     OAMessageStyledTextBean displayItem =  

  15.         (OAMessageStyledTextBean)webBean.findChildRecursive("DisplayItem"+i);  

  16.     displayItem.setRendered( false );  

  17.   }  


  18.    //将Region中的FormValue都设置为不显示 

  19.    for ( int  i= 1 ; i<= 5 ; i++){  

  20.     OAFormValueBean hideItem =  

  21.         (OAFormValueBean)webBean.findChildRecursive("FormVal"+i);  

  22.     hideItem.setRendered( false );  

  23.   }  


  24.    for ( int  i= ; i<paramList.size(); i++){  

  25.       attribute = (String[])paramList.get(i);  

  26.        if (attribute[ 4 ] !=  null  && "Display".equals(attribute[ 4 ])){  

  27.           OAMessageStyledTextBean displayItem =   

  28.               (OAMessageStyledTextBean)webBean.findChildRecursive("DisplayItem"+dispalyIndex);  


  29.            //关联View Attribute 

  30.           displayItem.setViewAttributeName(attribute[ ]);  


  31.            //设置Data Type 

  32.            if ("java.lang.String".equals(attribute[ 2 ])){  

  33.               displayItem.setDataType("VARCHAR2");  

  34.           }  

  35.            else   if ("oracle.jbo.domain.Number".equals(attribute[ 2 ])){  

  36.               displayItem.setDataType("NUMBER");  

  37.           }  

  38.            else   if ("oracle.jbo.domain.Date".equals(attribute[ 2 ])){  

  39.               displayItem.setDataType("DATE");  

  40.           }  

  41.            //设置显示 

  42.           displayItem.setRendered( true );  


  43.            //是否可查询 

  44.            if (attribute[ 5 ] !=  null  && "SearchAllow".equals(attribute[ 5 ])){  

  45.               displayItem.setQueryable( true );  

  46.           }  


  47.           dispalyIndex++;  

  48.       }  

  49.        else   if (attribute[ 4 ] !=  null  && "Hide".equals(attribute[ 4 ])){  

  50.           OAFormValueBean hideItem =   

  51.               (OAFormValueBean)webBean.findChildRecursive("FormVal"+hideIndex);  


  52.            //hideItem.setViewUsageName("FndUserLovVO2"); 

  53.           hideItem.setViewAttributeName(attribute[ ]);  


  54.            if ("java.lang.String".equals(attribute[ 2 ])){  

  55.               hideItem.setDataType("VARCHAR2");  

  56.           }  

  57.            else   if ("oracle.jbo.domain.Number".equals(attribute[ 2 ])){  

  58.               hideItem.setDataType("NUMBER");  

  59.           }  

  60.            else   if ("oracle.jbo.domain.Date".equals(attribute[ 2 ])){  

  61.               hideItem.setDataType("DATE");  

  62.           }  


  63.           hideItem.setRendered( true );  


  64.           hideIndex++;  

  65.       }  

  66.   }  

  67. }   

<p style="margin-top:0px;margin-bottom:18px;padding:0px;font-family:'-apple-system', 'SF UI Text', Arial, 'PingFang SC', 'Hi

感谢大家的阅读,以上就是“OAF开发中LOV相关技巧有哪些”的全部内容了,学会的朋友赶紧操作起来吧。相信编程网小编一定会给大家带来更优质的文章。谢谢大家对编程网网站的支持!

您可能感兴趣的文档:

--结束END--

本文标题: OAF开发中LOV相关技巧有哪些

本文链接: https://www.lsjlt.com/news/71243.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • OAF开发中LOV相关技巧有哪些
    小编今天带大家了解OAF开发中LOV相关技巧有哪些,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“O...
    99+
    2024-04-02
  • linux中开发技巧有哪些
    这篇文章将为大家详细讲解有关linux中开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.make: Nothing to be done for `all' 解决方法 1.这句提示...
    99+
    2023-06-13
  • html5相关常用技巧有哪些
    本篇内容主要讲解“html5相关常用技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5相关常用技巧有哪些”吧!   1. 新的Doctype声...
    99+
    2024-04-02
  • jQuery中EasyUI开发技巧有哪些
    这篇文章主要为大家展示了“jQuery中EasyUI开发技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery中EasyUI开发技巧有哪些”这篇文...
    99+
    2024-04-02
  • WEBAPP开发技巧有哪些
    本篇内容主要讲解“WEBAPP开发技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WEBAPP开发技巧有哪些”吧!要响应式开发web,也就是页面必须自适应屏幕大小,可以采用流体布局,如之...
    99+
    2023-06-08
  • Vue开发技巧有哪些
    Vue开发技巧有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。路由参数解耦一般在组件内使用路由参数,大多数人会这样做:export&nbs...
    99+
    2024-04-02
  • JS开发技巧有哪些
    这篇文章主要为大家展示了“JS开发技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS开发技巧有哪些”这篇文章吧。常用 JS 函数1.时间格式化界面展示...
    99+
    2024-04-02
  • Python有哪些开发技巧
    这篇文章主要讲解了“Python有哪些开发技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些开发技巧”吧! 1. 如何在运行状态查看源代码查看函数的源代码,我们通...
    99+
    2023-06-16
  • JavaScript开发技巧有哪些
    本篇内容介绍了“JavaScript开发技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  使用很多javascript代码的Web...
    99+
    2023-06-04
  • 有哪些Python开发技巧
    这篇文章主要介绍“有哪些Python开发技巧”,在日常操作中,相信很多人在有哪些Python开发技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python开发技巧”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-16
  • C#开发技巧有哪些
    这篇文章将为大家详细讲解有关C#开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C#开发技巧(一):关于变量的命名和属性static readonly与const的变量,作用是一样的,无论访问...
    99+
    2023-06-17
  • JavaScript预解析及相关技巧有哪些
    这篇文章主要介绍了JavaScript预解析及相关技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript预解析及相关技巧有哪些文章都会有所收获,下面我们一起来看看吧。变量同样,以这两个小例...
    99+
    2023-07-04
  • Visual Studio调试的相关技巧有哪些
    本篇内容介绍了“Visual Studio调试的相关技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我的IIS明显打开的!在CPU1...
    99+
    2023-06-17
  • Python开发的技巧有哪些
    这篇文章主要讲解了“Python开发的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python开发的技巧有哪些”吧! 列表推导式你有一个list:bag = [1, 2, 3, ...
    99+
    2023-06-02
  • JS有哪些开发小技巧
    本篇内容主要讲解“JS有哪些开发小技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS有哪些开发小技巧”吧!1. typeof ...
    99+
    2024-04-02
  • Python开发中有哪些高级技巧
    这期内容当中小编将会给大家带来有关Python开发中有哪些高级技巧,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python 开发中有哪些高级技巧这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不...
    99+
    2023-06-16
  • 前端开发中常用技巧有哪些
    这篇文章主要为大家展示了“前端开发中常用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“前端开发中常用技巧有哪些”这篇文章吧。文章标题列表中日期居右显示的方法: 代码如下:<p&g...
    99+
    2023-06-08
  • 实用JavaScript 开发技巧有哪些
    这篇文章将为大家详细讲解有关实用JavaScript 开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 初始化数组如果想要初始化一个指定长度的一维数组,并指定默认值,可以这样:c...
    99+
    2023-06-22
  • AJAX开发技术在PHP开发中的应用技巧有哪些
    AJAX开发技术在PHP开发中的应用技巧有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。[AJAX介绍]Ajax是使用客户端脚本与Web服...
    99+
    2024-04-02
  • npm快速开发技巧有哪些
    这篇文章主要介绍npm快速开发技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.学习基本快捷方式我们从最基本的开始,学习最常见的npm快捷方式从长远来将会节省很多时间。安装...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作