ホームページ ウェブフロントエンド jsチュートリアル EasyUI_jquery でのツリーの使用法の概要

EasyUI_jquery でのツリーの使用法の概要

May 16, 2016 pm 05:59 PM
easyui tree

本当は忙しすぎて、書くべきことがたくさんあるはずなのに、書くことを考えるたびに何かを忘れてしまいます。 10月も最終日、忙しいけどこの記事を書き終えないとまた空白の月ができてしまいます。

以前、メンバーを指導して小さなモジュール関数を開発したとき、ポップアップ ウィンドウを使用してツリー状のカスケード ユニットの選択を読み込む必要があり、最終的に jQuery EasyUI プラグインを使用して開発することにしました。 。ただし、EasyUI でツリー プラグインを使用するときに多くの問題に遭遇しました。ポップアップ ツリーの表示速度を向上させるために、ノード値の非同期ロードを使用します。まずルート ノードがロードされ、次にクリックされたノードに応じて子ノードがロードされます。

結果が予想と異なることがよくあり、拡張後は子ノードが動的に読み込まれますが、縮小後に拡張時に以前に入力されたデータは消去されません。 2 回目では、子ノードが再度ロードされるため、データが繰り返し表示され、子ノードをクリアするメソッドが提供されませんでした。この問題を解決するためにさまざまな方法を試した後、各ノードの値を別の形式で保存し、存在する場合はロードせずにロードするしかありません。

例では 2 つのメソッドが示されています。

コードをコピー コードは次のとおりです。

vartreeTitle = 'リストの選択';
vartreeUrl = '../DataAshx/getTreeNode.ashx?pid=-1';
var nodeExp=false; "";
var rows;
var noinf=0;
$('#treewindow').window({
title:treeTitle,
幅: 400、
高さ: 400、
モーダル: true、
シャドウ: false、
閉じた: true、
サイズ変更可能: false、
最大化可能: false、
最小化可能: false,
折りたたみ可能: false
});
function TreeWindowOpen(name,rowIndx) {
$('#treewindow').window('open');
nodekeep="";
nodeExp=false;
$('#basetree').tree({
チェックボックス: true,
animate: true、
url:treeUrl "&coln="escape(name.toString())、
cascadeCheck: true、
onlyLeafCheck: false、
onBeforeExpand: function(node, param) {
//--------最初の方法: 子ノードの値を非同期でロードします-------------
// $('#basetree' ).tree(' options').url = "../DataAshx/getTreeNode.ashx?pid="node.id "&coln="escape(name.toString());

//-- ----- -----2 番目のメソッド: Ajax メソッドは子ノードの Json 値を返し、append メソッドを使用して子ノードをロードします
$.ajax({
type: "POST",
URL : "../DataAshx/getTreeNode.ashx?pid="node.id "&coln="escape(name.toString()) "&casn="escape(node.attributes.cas.toString()),
キャッシュ : false、
async: false、
dataType: "json"、
成功: function(data) {
if(nodekeep.indexOf(node.id)==-1)
{
append(データ, ノード);
}
}
}); ;
},
onLoadError:function(Error)
{
$.messager.alert('prompt', 'クエリステートメントエラー', 'error'); = false)
{
$("#basetree").children().remove();
}
},
onLoadSuccess:function(success)
{
var child=$("#basetree").children().length;
noinf ;
if(child==0&&noinf>1)
{
$.messager.alert('hint) ' , 'データが存在しません', '情報');
}
}
});

}
関数treeWindowClose() {
$('#ツリーウィンドウ' ).window('close');
nodekeep="";
nodekeep=false;
関数 TreeWindowSubmit() {
var ノード = $('#basetree' ).tree('getChecked');
var info = '';
if (nodes.length > 0) {
for (var i = 0; i if (info != '') { info = ',' }
info = nodes[i].text
}
//alert(JSON.stringify(nodes); ;
}
else {
var ノード = $('#basetree').tree('getSelected');
if (ノード != null) {
情報 = ノード.text;
}
}
$("#" rows).val(info);
$('#treewindow').window('close'); "";
nodeExp=false;
}
//すべて展開
関数 CollapseAll() {
$("#radCollapse").attr("checked", "checked") ;
var ノード = $('#basetree').tree('getSelected');
if (ノード) {
$('#basetree').tree('collapseAll', node.target );
} else {
$('#basetree').tree('collapseAll');
}
}
//すべてを折りたたむ
関数 ExpandAll() {
var node = $('#basetree').tree('getSelected');
if (node) {
$('#basetree').tree('expandAll', node.target);
} else {
$('#basetree').tree('expandAll');
}
}
//子ノードを追加
関数 append(datas,cnode) {
var node = cnode;
$('#basetree').tree('append', {
親: ノード.ターゲット,
データ: データ
}); >nodekeep = $('#basetree').tree('getSelected'); 🎜>if (ノード) {
$('#basetree').tree('reload', node.target);
} else {
$('#basetree').tree('reload ');
}
}
//子ノードを削除
function delete() {
var node = $('#basetree').tree('getSelected'); >$( '#basetree').tree('remove',node.target);
}


ページ getTreeNode.ashx はツリー ノードの JSON 形式データを返します:




コードをコピーします


コードは次のとおりです:

<%@ WebHandler Language="C#" Class="getTreeNode" %>
システムを使用しています。
System.Collections を使用します。
System.Data を使用します。
System.Linq を使用;
System.Web を使用;
System.Web.Services を使用します。
System.Web.Services.Protocols を使用します。
System.Xml.Linq を使用;
System.Collections.Generic を使用;
public class getTreeNode : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
DataTable dt = (DataTable)context.Session["viewmaintain"];
文字列親Id = string.Empty;
文字列結果Str = string.Empty;
文字列属性 = string.Empty;
文字列colName = string.Empty;
文字列 sql = 文字列.Empty;
文字列 Casname = string.Empty;
ブールコルト = false;
文字列アイコン = "アイコンプロファイル";
if (!string.IsNullOrEmpty(context.Request.QueryString["pid"]))
{
parentId = context.Request.QueryString["pid"].ToString();
}
if ((!string.IsNullOrEmpty(context.Request.QueryString["coln"])) && (string.IsNullOrEmpty(context.Request.QueryString["casn"])))
{
colName = HttpUtility.UrlDecode(context.Request.QueryString["coln"].ToString());
if (dt != null)
{
bool pt = true;
while (pt)
{
for (int i = 0; i < dt.Rows.Count; i )
{
Casname = dt.Rows[i]["view_colname "].ToString();
if (dt.Rows[i]["view_colname"].ToString() ==colName)
{
if (dt.Rows[i]["view_cas"].ToString() != null&&dt.Rows[i]["view_cas"].ToString() !="")
{
colName = dt.Rows[i]["view_cas"].ToString();
}
else
{
colt = true;
sql = dt.Rows[i]["view_sql"].ToString();
pt = false;
}
休憩;
}
}
}
}
}
if ((!string.IsNullOrEmpty(context.Request.QueryString["casn"])) && (!string.IsNullOrEmpty( context.Request.QueryString["coln"])))
{
string casnName = HttpUtility.UrlDecode(context.Request.QueryString["casn"].ToString());
colName = HttpUtility.UrlDecode(context.Request.QueryString["coln"].ToString());
if (dt != null)
{
for (int i = 0; i {
Casname = dt.Rows[i] ["view_colname"].ToString();
if (dt.Rows[i]["view_cas"].ToString() == casnName && casnName !=colName)
{
colt = true;
sql = dt.Rows[i]["view_sql"].ToString();
休憩;
}
}
}
}
try
{
if (parentId != "" && Colt == true)
{
//こちら
List は省略します。 ltree = DAL_TreeInfo.GetItemValue(parentId, sql);
resultStr = "";
resultStr = "[";
if (ltree.Count > 0)
{
foreach (ltree 内の TreeInfo 項目)
{
attributes = "";
attributes = "{"cas":"" Casname;
attributes = "","val":"" item._text ""}";
resultStr = "{";
resultStr = string.Format(""id": "{0}", "text": "{1}", "iconCls": "{2}", "attributes": {3}, "state ": "クローズ""、item._id、item._text、アイコン、属性);
resultStr = "},";
}
resultStr = resultStr.Substring(0, resultStr.Length - 1);
}
resultStr = "]";
}
else
{
resultStr = "[]";
}
}
catch (例外例)
{
resultStr = "出错";
}
context.Response.Write(resultStr);
}
public bool IsReusable
{
get
{
return false;
}
}
}

关键性の代码都已经在上面了,目前也就想只能到この种法来解决了,有期限的话可以给木

小弟在此献丑了、不知道各位专家、同仁有遇看做同様的問題、或者其他有

同時に、各位の宝物を抽出する時間的な文章も感じています、私たちは共同で、共同共有の交流、艮省の人の時間は自己を高めることです~~~

作者:ZHF
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

easyui は jquery プラグインですか? easyui は jquery プラグインですか? Jul 05, 2022 pm 06:08 PM

easyui は jQuery プラグインです。 easyui は JQuery に基づくフロントエンド UI インターフェイス プラグインで、Web 開発者が機能豊富で美しい UI インターフェイスをより簡単に作成できるようにするために使用されます。 easyui は HTML5 Web ページを完全にサポートするフレームワークで、開発者が Web 開発の時間と規模を節約するのに役立ちます。

ツリーを使用して、表示用のファイル ディレクトリ ツリーを生成します。 ツリーを使用して、表示用のファイル ディレクトリ ツリーを生成します。 Mar 01, 2024 pm 05:46 PM

Tree は、ディレクトリの内容をツリー形式で再帰的にリストするコマンド ライン ツールです。これにより、すべてのディレクトリ、サブディレクトリ、およびファイルが階層形式でリストされ、それによってファイルとフォルダの組織構造が視覚的に表示されます。 Windows および Linux システムでの Tree のインストールと使用方法 Linux での Tree のインストールと使用 Linux での Tree のインストール: aptupdate&&aptinstalltree 以下は、tree コマンドの一般的な使用方法です。 #指定したパスの下のディレクトリ ツリーを表示しますtree/d/temp#最大表示深度を制限しますtree-L3#ディレクトリのみを表示し、ファイルは表示しませんtree-d#隠しファイルとディレクトリを含めて表示しますtr

jQuery EasyUI を使用して最新の Web インターフェイスを作成する jQuery EasyUI を使用して最新の Web インターフェイスを作成する Feb 23, 2024 pm 10:18 PM

jQueryEasyUI を使用して最新の Web インターフェイスを作成する 今日のインターネットの急速な発展に伴い、Web デザインの重要性がますます高まっています。ユーザーを引き付け、ユーザー エクスペリエンスを向上させ、プロフェッショナリズムを実証するには、最新の Web インターフェイスを設計することが重要です。この目標を達成するには、優れたフロントエンド フレームワークである jQueryEasyUI を使用して、開発プロセスを簡素化できます。以下では、jQueryEasyUI を使用して最新の Web インターフェイスを作成する方法を紹介し、いくつかの具体的なコード例を示します。とは

PHP と jQuery EasyUI を使用して効率的なバックエンド管理システムを開発する PHP と jQuery EasyUI を使用して効率的なバックエンド管理システムを開発する Jun 27, 2023 pm 01:21 PM

インターネットの発展に伴い、企業の発展を強力にサポートするために、データを管理および処理する効率的なバックエンド管理システムを開発する必要がある企業がますます増えています。この文脈において、PHP と jQueryEasyUI は非常に人気のある開発テクノロジになりました。 PHP は広く使用されているサーバーサイド スクリプト言語です。オープン ソース、クロスプラットフォーム、学習と使用が簡単という利点があり、豊富な関数ライブラリと多数のオープン ソース フレームワークを備えており、効率的なスクリプト言語を迅速に構築できます。バックエンド管理システム。そしてjQueryEasyU

jQuery EasyUI Web デザインのインスピレーションとヒントを探る jQuery EasyUI Web デザインのインスピレーションとヒントを探る Feb 25, 2024 pm 09:12 PM

jQueryEasyUI は、jQuery に基づくユーザー インターフェイス プラグイン フレームワークで、開発者が美しく強力な Web ページを迅速に構築できるようにする、使いやすいインターフェイス コンポーネントとプラグインを豊富に提供します。この記事では、jQuery EasyUI を使用することでもたらされる Web デザインのインスピレーションとテクニックを探り、具体的なコード例を示します。 1. レスポンシブ レイアウト レスポンシブ デザインは、Web ページがさまざまなデバイス上で最高のユーザー エクスペリエンスを提供できるようにする、現代の Web デザインにおける重要なトレンドです。 jQuery

操作が簡単なおすすめjQuery EasyUIプラグイン 操作が簡単なおすすめjQuery EasyUIプラグイン Feb 25, 2024 pm 09:33 PM

jQuery は、Web 開発で広く使用されている人気の JavaScript フレームワークであり、jQueryEasyUI は、jQuery に基づいて開発されたシンプルで使いやすい UI プラグイン ライブラリのセットです。この記事では、いくつかの優れた jQueryEasyUI プラグインを紹介し、これらのプラグインをより早く使い始めるのに役立つ具体的なコード例を示します。 1.DataGrid(データテーブル) DataGridは、データをテーブルに表示し、データのロード、ソート、フィルタリングなどをサポートするプラグインです。

インタラクティブな Web ページを作成する方法: jQuery EasyUI を使用する インタラクティブな Web ページを作成する方法: jQuery EasyUI を使用する Feb 25, 2024 pm 09:09 PM

jQueryEasyUI を使用してインタラクティブな Web ページを作成するにはどうすればよいですか?現代の Web デザインでは、インタラクティブな Web ページがユーザーを引き付け、ユーザー エクスペリエンスを向上させる重要な要素の 1 つになっています。インタラクティブな Web ページのデザインを実現するには、開発者はさまざまなテクノロジとツールを使用して、Web ページとのユーザー インタラクションを実現する必要があります。その中でも、jQueryEasyUI は、強力なオープンソース JavaScript ライブラリとして、豊富な UI コンポーネントと強力なインタラクティブ機能を提供しており、開発者が美しく機能豊富なインタラクションを迅速に構築するのに役立ちます。

Web デザイン プロセスを簡素化する: jQuery EasyUI Web デザイン プロセスを簡素化する: jQuery EasyUI Feb 24, 2024 pm 09:57 PM

jQueryEasyUI: Web デザインをより効率的にする インターネットの急速な発展により、Web デザインは現代社会に不可欠な部分になりました。 Web デザインの効率と品質を向上させるために、フロントエンド開発者はいくつかの優れたツールとフレームワークを使用する必要があります。その中でも、jQueryEasyUI は非常に人気があり実用的なツールであり、開発者が美しく機能豊富な Web インターフェイスを迅速に構築するのに役立つさまざまな UI コンポーネントとプラグインを提供します。 jQueryEasyUIがベースです

See all articles