2012-02-04 11 views
1

(だけでなく、ID)、セルの内容に基づいて、録音ボタンを削除する有効または無効にします。しかし、私はいくつかの努力の後にjqgridをインストールすることができました。条件付きで、私はjQueryとjqgridに新しいですが、私はJavaScriptを使用して快適だ

私は鉱石が「ロック」列の値に基づいて、ナビゲーションバーから削除機能を無効に有効にするために解決策を見つけるためにしようとしています。私は次のリンクを読む jqgrid: how to set toolbar options based on column value in row selected

しかし、私はjavascriptの 'ロック'セルの内容を取得することができませんでした。私も効果なしでロック文字列をフォーマットしようとしました。

jqgridはphp経由で読み込まれます。スクリプトは、PHPスクリプトがあり、ここでhttp://www.trirand.net/demophp.aspx

で次

require_once("JQGrid/jq-config.php"); 
require_once("JQGrid/php/jqGridASCII.php"); 
require_once("JQGrid/php/jqGridPdo.php"); 
$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD); 
$grid = new jqGridRender($conn); 
$grid->SelectCommand = 'SELECT * FROM `device_assignement` '; 
$grid->dataType = 'json'; 
$grid->setColModel(); 
$grid->setUrl('Grid_ecu_display.php'); 
$grid->setColProperty("company", 


array("label"=>"Dealer Name", 
"width"=>350 
), 
array("searchrules"=> 
array("searchhidden"=>false, "required"=>false, "search"=>false))); 




$grid->setGridOptions(array( 
"sortable"=>true, 
"rownumbers"=>true, 
"rowNum"=>40, 
"rowList"=>array(10,50,100), 
"sortname"=>"ecu", 
"width"=>940, 
"height"=>400, 
"shrinkToFit"=>true, 
"hidden" => true, 
"hoverrows"=>true)); 


$grid->toolbarfilter = true; 
$grid->setFilterOptions(array("stringResult"=>true)); 
$grid->setColProperty("ecu", array(
"label"=>"ECU Number" , 
"sortable"=>true 
)); 

$grid->setColProperty("lock", array(
"label"=>"<i>Lock</i>" , 
"width"=>60, 
"sortable"=>false, 
"editable"=>true 
)); 

などなど...

$ecu = jqGridUtils::GetParam('ecu'); 
// This command is executed immediatley after edit occur. 
$grid->setAfterCrudAction('edit', "UPDATE `ecu_master` SET `lock` = '1'    WHERE `ecu` =?",array($ecu)); 


$grid->navigator = true; 

$grid->setNavOptions('navigator', array("pdf"=>true, "add"=>false,"edit"=>true,"del"=>false,"view"=>false, "excel"=>true)); 



$grid->setColProperty('company',array("searchoptions"=>array("sopt"=>array("cn")))); 
$oper = jqGridUtils::GetParam("oper"); 
if($oper == "pdf") { 
$grid->setPdfOptions(array( 
// set the page orientation to landscape 
"page_orientation"=>"L", 
// enable header information 
"header"=>true, 
// set bigger top margin 
"margin_top"=>27, 
// set logo image 
//"header_logo"=>"logo.gif", 
// set logo image width 
//"header_logo_width"=>30, 
//header title 
"header_title"=>"Autograde CMS ECU Allocation List", 
// and a header string to print 
"header_string"=>"$SoftwareVersion" 
)); 
} 
// Run the script 
$grid->renderGrid('#grid','#pager',true, null, null, true,true); 

これはどこ別のPHPスクリプトに含まれています。 「ロック」の値に基づいて行の削除ボタンを有効または無効にすることです これはあまりにも基本的でばかげて思われる場合は私に理解させてください教えてください。

答えて

0

グリッドのセル上のユーザーのクリックは、行全体が選択され、コールバック関数onSelectRowが呼び出されます場合。したがって、コールバック関数onSelectRowは、最初のパラメータとしてROWID(が<tr>のもの)を実装する必要があります。 onSelectRowハンドラの内部では、getCellメソッドを呼び出すことができます。必要に応じて非表示にすることができる 'ロック'列の値に応じて、ナビゲータバーの「編集」ボタンと「削除」ボタンを無効にすることができます。

ので、コードは以下の程度とすることができます

$('#list').jqGrid({ 
    ... all other jqGrid options which you need 
    pager: '#pager', 
    onSelectRow: function (rowid) { 
     var gridId = $.jgrid.jqID(this.id); 
     // test 'lock' column for some value like 'yes' 
     if ($(this).jqGrid('getCell', rowid, 'lock') === 'yes') { 
      // disable the "Edit" and "Delete" buttons of the navigator 
      $("#edit_" + gridId).addClass('ui-state-disabled'); 
      $("#del_" + gridId).addClass('ui-state-disabled'); 
     } else { 
      // enable the "Edit" and "Delete" buttons of the navigator 
      $("#edit_" + gridId).removeClass('ui-state-disabled'); 
      $("#del_" + gridId).removeClass('ui-state-disabled'); 
     } 
    } 
}).jqGrid('navGrid', '#pager'); 

あなたはjqGridで新しく追加されたので、私は$.jgrid.jqID()機能の使い方をコメントしたいです。ほとんどの場合、入力パラメータの値を返します。例の場合は 'list'です。グリッドのID(<table>要素のID)にmeta-charactersが含まれる場合は、より一般的なケースで必要です。 $.jgrid.jqID()関数は、任意のメタ文字の前に追加のエスケープ文字(2つのバックスラッシュ:\\)を含みます。

+0

私はあなたのソリューションを適用するが、私はJSONデータを呼び出すPHPスクリプトを含む後以内にこれを追加する必要があり、それは私のグリッド表示を台無しに? – Kaippally

+0

@ user1188970:申し訳ありませんが、あなたが何を意味するのか分かりません。 jqGridを正しい方法で使用しているかどうかはわかりません。コードの例については、ドキュメントの[パート](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:first_grid#html_file)を参照してください。 – Oleg

+0

これは、jasonデータを提供するPHPスクリプトの出力です。 「{「ecu」:「D1005E-30275」、「ロック」:「1」、「1」、「1」、「行」:「1」、「ページ」:1、「合計」:1、「行」: ' "add_date_timestamp": "2012-01-27 10:13:01"、 "company": "Global Auto electricals"、 "email": "[email protected]"、 "phone": "+ 97335784587"、 "mobile" : "+ 9714967451348"} ] } – Kaippally

関連する問題