<script> <P>$(document).ready(function()<BR>{<BR> initPlsfList();<BR>});<BR>//初始化grid列表<BR>function initPlsfList(){<BR> //缓存表列数组,key 为页面元素的name ,value 对应数据库中的字段<BR> var cellArray = new Array();<BR> cellArray["zoneID"] ="ZONE_ID"; <BR> cellArray["factorPG"] ="FACTOR_PG"; <BR> cellArray["factorQG"] ="FACTOR_QG";<BR> cellArray["factorPL"] ="FACTOR_PL";<BR> cellArray["factorQL"] ="FACTOR_QL";<BR> cellArray["valid"] ="VALID";<BR> <P> var caseID = '${caseID}';<BR> $("#plsfList").jqGrid({<BR> url:"<c:url value='/lfc/powerlsfactor/queryData?caseID= " caseID "' />",<BR> datatype: "json",<BR> mtype:"POST",<BR> 高さ: "auto",<BR> width: "auto",<BR> colNames: [<BR> 'id',<BR> "<fmt:message key='case.valid'/>", <BR> "<fmt:message key='zone'/>", <BR> "<fmt:message key='pasf'/>", <BR> "<fmt:message key='pisf'/>",<BR> "<fmt:message key='lasふ」 />",<BR> "<fmt:message key='lisf'/>",<BR> 'modeID'<BR> ],<BR> colModel: [<BR> {name:'id' ,index:'id', width:100,hidden:true},<BR> {name:'valid',index:'valid', width:100,editable:true,<BR> formatter:formatValid,<BR> editable:true,edittype:'checkbox',<BR> editoptions:{value:'1:0',defaultValue:'1'}<BR> },<BR> {name:'zoneName',index:'zoneName' , width:150,editable:true},<BR> {name:'factorPG',index:'factorPG', width:100,editable:true},<BR> {name:'factorQG',index:'factorQG' , width:100,editable:true},<BR> {name:'factorPL',index:'factorPL', width:100,editable:true},<BR> {name:'factorQL',index:'factorQL' 、width:100,editable:true},<BR> {name:'caseID',index:'caseID', width:100,hidden:true},<BR> ],<BR> rowNum:10,<BR> rowList:[10,20,30],<BR> pager: '',<BR> cellEdit:true,<BR> viewrecords: true,<BR> jsonReader: {repeatitems:false,id:"id" },<BR> viewsortcols:[false,'horizontal',false],<BR> sortable:false,<BR> sortorder:"asc",<BR> sortname:"id",<BR> multiselect: true,<BR>携帯URL :"<c:url value='/lfc/powerlsfactor/save'/>",<BR> cellsubmit: 'remote',<BR> GridComplete: function() {<BR> var $selecAll = $(" #cb_plsfList");<BR> var cb_title = "<fmt:message key='select.all' Bundle='${commonResources}'/>" ;<BR> if($selecAll){<BR> $selecAll.attr("title",cb_title);<BR> }<BR> //设置全选checkbox title<BR> var rowIds = jQuery("#plsfList").jqGrid('getDataIDs');<BR> for(var k=0; k<rowIds.length; k++) {<BR> var curRowData = jQuery("#plsfList").jqGrid('getRowData', rowIds[k]);<BR> var curChk = $("#"+rowIds[k]+"").find(":checkbox");<BR> //curChk.attr('title', curRowData.modeName); //给checkbox赋予额外的属性值<BR> }<br><br> },<BR> onSortCol:function(index,iCol,sortorder){<BR> return false ;<BR> },<BR> ondblClickRow: function (rowid,iRow,iCol,e) {<BR> /*var $plsfList = $("#plsfList");<BR> if (isRowNeedSave($plsfList)){<BR> showMessage("请先保存");<BR> }else{<BR> $("#operate").val("update");<BR> newrowid = rowid ;<BR> $plsfList.setGridParam({cellEdit:false});<BR> $plsfList.jqGrid('editRow', rowid, true);<BR> //确定按钮可用<BR> $("#confirm_btn").attr("disabled",false);<br><br> }*/<BR> },<BR> beforeSubmitCell:function(rowid, cellname, value, iRow, iCol){<BR> //列提交前的拦截方法<BR> var $plsfList = $("#plsfList") ;<BR> var $editUrl = '<c:url value='/lfc/powerlsfactor/save'/>' ;<BR> //设置列提交的url。updateCellName:要编辑的列名 ;updateCellValue :是编辑的值<BR> $editUrl = addParamToUrl($editUrl,'updateCellName',iCol == 3 ? cellArray['zoneID'] :cellArray[cellname]);<BR> $editUrl = addParamToUrl($editUrl,'updateCellValue',iCol == 3 ? $("#zone_id").val():value);<BR> //给jqgrid 从新设置cellurl 值<BR> $plsfList.setGridParam({cellurl:$editUrl});<BR> return false ;<BR> },<BR> afterEditCell:function(rowid, cellname, value, iRow, iCol){<BR> //动态修改lie时,当列 变为可修改状态时,给列add一个button,且列中元素不可编辑,点击button 弹出一个模态窗口,可以选择元素 ,赋值给grid当前编辑列中单行表单域中.<BR> $("#"+rowid+" input[type='checkbox']").attr("checked",value == "<fmt:message key='case.valid'/>" ? true:false);<BR> if(iCol==3){<BR> $("#irowNum").val(rowid);<BR> var $data = $("#"+rowid +">td"); //获取这个行里所有的td元素,即:获取所有子元素<BR> $zoneInput = $data.find("input").eq("1") ;<BR> $zoneInput.css("width","100px");<BR> $zoneInput.attr("disabled",true);<BR> $zoneInput.after("<input type='button' value='选择' onclick='fnCallDialogForEidt()' />");<BR> }<BR> }<P> }); <P><BR>//グリッドに新しい行を追加します<BR>var newrowid;<BR>function addRow()<BR>{<BR> $("#operate").val("");<BR> var selectedId = $("#plsfList").jqGrid("getGridParam", "selrow"); <BR> var ids = jQuery("#plsfList").jqGrid('getDataIDs');<BR> //取得現在の最大行番号 (データ番号) <BR> var rowid = Math.max.apply(Math,ids); <BR> //新しく追加された行の行番号 (データ番号) を取得します <BR> newrowid = rowid 1;<BR> var dataRow = { <BR> id: "",<BR> 有効:"",<BR> ゾーン ID:'',<BR> 因子PG:'',<BR> 因子QG:'',<BR>actorPL:'',<BR>factorQL:'',<BR>caseID:''<BR> }; <br><br> // 新しく追加された行を最初の列に挿入します <BR> $(" #plsfList" ).jqGrid("addRowData", newrowid, dataRow, "first");<BR> //グリッドセルを編集不可に設定します<BR> $("#plsfList").setGridParam({cellEdit:false) });<BR> //グリッドセルを編集可能に設定します<BR> $('#plsfList').jqGrid('editRow', newrowid, false);<BR> //ボタンが使用可能であることを確認します<BR> $( "#confirm_btn"). attr("disabled",false);<BR> //追加した列に選択ボタンを追加します<BR> var $zoneInput = $("#" newrowid "_zoneName");<BR> $ zoneInput.attr("disabled" ,true).css("width",100);<BR> $zoneInput.after("<input type='button' value='select' onclick='fnCallDialogForEidt()' / >");<br><br>} <P><BR>function insertPlsf(){<BR> var $plsfList = $("#plsfList") ;<BR> var $operate = $("#operate").val();<BR> //グリッドのセルを編集可能に設定します<BR> $plsfList.setGridParam({cellEdit:true});<BR> //グリッドの行を編集不可に設定します<BR> //$plsfList.jqGrid('editRow', newrowid, false) ; <BR> //スプライシング要求の URL<BR> var url = '<%=basePath%>' "/lfc/powerlsfactor/save" ;<BR> var $params = $plsfList.find("input[ id ^=" newrowid "]");<BR> var $check_val = $params.eq(0).is(':checked') ? 1:0;<BR> url = addParamToUrl(url,'valid', $ check_val);<BR> url = addParamToUrl(url,'zoneID',$("#zone_id").val());<BR> url = addParamToUrl(url,'factorPG',$params.eq(2) . val());<BR> url = addParamToUrl(url,'factorQG',$params.eq(3).val());<BR> url = addParamToUrl(url,'factorPL',$params.eq( 4 ).val());<BR> url = addParamToUrl(url,'factorQL',$params.eq(5).val());<br><br> var $caseID = $("#caseID" ) .val();<BR> url = addParamToUrl(url,'caseID',$caseID); <P> $.ajax({url:url,type:"post",timeout:5000, <BR> success:function(data){<BR> showMessage(data);<BR> reloadGrid();<BR> }<BR> });<BR> //新しく追加された行番号は最初は空です<BR> newrowid = '' ;<BR> //確認ボタンは使用できません<BR> $("#confirm_btn")。 attr( "無効",true);<BR>} <P><BR>//ゾーン列の出力内容をフォーマットします<BR>function formatZone(cellvalue, options, rowObject){<BR> if(cellvalue == 0){<BR> return 0;<BR> }else if( cellvalue == 1){<BR> return 1;<BR> }else if(cellvalue == 2){<BR> return 2;<BR> }else{<BR> return 3;<BR> }<BR> } <P><BR>function isRowNeedSave($jqgrid){<BR> var $editTr = $jqgrid.find("tr[editable=1]") ;<BR> var flag = false ;<BR> if ( $editTr && $editTr.length > 0){<BR> フラグ = true ;<BR> }<BR> フラグを返す ;<BR>} <P><BR>function cancel(){<BR> reloadGrid();<BR> //確認ボタンは使用できません<BR> $("#confirm_btn").attr("disabled",true);<BR> //グリッドセルを編集可能に設定します<BR> $("#plsfList").setGridParam({cellEdit:true});<BR> //グリッドセルを編集可能に設定します<BR> $('#plsfList') . jqGrid('editRow', newrowid, true);<BR>} <P> <P>function fnCallDialogForEidt(){<BR> //現在の行番号(データ番号)を取得 <BR> var returnValue = "";<BR> returnValue = window.showModalDialog("<c:url value='/ element /zone/query?caseID=" $("#caseID").val() "' />",window,"");<BR> if(returnValue==""||returnValue==null) <BR> return;<BR> var $plsfList = $("#plsfList");<BR> var $params = $plsfList.find("input[id$='zoneName']");<BR> 変数名= returnValue.split(",");<BR> $params.eq(0).val(names[1]);<BR> $("#zone_id").val(names[0]);<BR> }<BR></script>



Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
