2016-07-05 16 views
0

私のUIはjqueryグリッドです。関数にパラメータを送信して(クエリを作成する)クリックしてから私のUIのjqueryグリッドですか?例えばClickでパラメータを送信してSQLクエリで使用するにはどうすればよいですか?

、これは私のグリッドだった場合: http://www.ok-soft-gmbh.com/jqGrid/OK/formEditOnDoubleClick-jqueryui-showlink.htm#

は、私は、クエリに送信されたクライアント名をフィルタとして使用するとよいでしょう。 次のページ(クライアントがクリックされたときの例に示すGoogleリンクではありません)では、そのクライアントを持つ企業のみが一覧表示されます。

この機能を使用してクエリを作成するにはどうすればよいですか?

私のUIからバックエンドクエリ関数にパラメータを送信する方法を知りたい。

EDITは****

ここで私が思いついたものだ - (それはjqgridを作成する)UIコードの内部

:バックエンドで

function returnHyperLink(cellValue, options, rowdata, action) 
{ 
    return '<a id="myLink" href="#" onclick="callCompanies(\''+cellValue+'\');">'+cellValue+'</a>' 
} 

function callCompanies(cellValue) { 
     $("#contents").load("jsp/companies.jsp"); 

} 

、その後、コード:

私は

@GET 
@Path("/{cellValue}") 
を追加

私の関数の先頭に、最終的には次のように、クエリをフィルタリングするためにcellValueを使用することができます。

+ " where a.evt_type_id = cellValue " + "and " 
+0

このようにバックエンドのURL /エンドポイントにclientのid/nameを追加するだけです。http:// domain?name = client-name – binariedMe

+0

データがプライベートでない場合、私はちょうど上記のコメント。しかし、プライベートであるか、よりきれいな操作が必要な場合は、[ajax](http://www.w3schools.com/jquery/ajax_ajax.asp)の呼び出しを行い、そのデータを送信します。 –

+0

@binariedMe大丈夫私は投稿を編集しました。それはあなたがしたいことですか? –

答えて

0

私はあなたの前の質問にthe answerためthe demoを掲載してoptionsパラメータの性質を説明。 rowidはROWIDです。したがって、行からのデータにアクセスするためにgetLocalRowgetRowDataまたはgetCell)を使用できます。次に、ちょうど追加することができます

onClick: function (options) { 
    var item = $(this).jqGrid("getLocalRow", options.rowid); 
    window.location = "https://www.google.com/#q=" + encodeURIComponent(item.name); 
} 

the modified demoの結果を見ることができます。 onClickformatoptionsformatter: 'showlink'の中で定義することができます。free jqGrid私は開発しています。

カスタムフォーマッタを使用する場合は、とeventを使用してonclickの値を定義できます。あなたは

onclick="callCompanies.call(this, \''+cellValue+'\', event);" 

が次にあなたがROWIDを取得するために$(this).closest("tr.jqgrow").attr("id")callCompaniesの内部機能を使用することができ、次の例のために、あなたのコード内で使用されるコードフラグメントonclick="callCompanies(\''+cellValue+'\');"を変更することができます。行からデータを取得するには、getLocalRowgetRowDataまたはgetCellを使用できます。

+0

ありがとう!私はすでにリンクがうまく動作しています。私が本当に疑問に思っているのはSQLです。この変数のitem.nameをこの例ではsqlコードにどのように転送できるのか分かりますか?パラメータを渡すためのパスを使用しますか? (上記のように)、私は試みた方法をフィルタリングするためにパラメータを使用できますか? –

+0

@JulesMena:JavaScriptはSQL文を直接実行することはできませんが、*パラメータ*をサーバに送信できます。この例では、検索のために 'google.com 'によって' q'パラメータが使用されます。 [変更されたデモ](http://www.ok-soft-gmbh.com/jqGrid/OK/formEditOnDoubleClick-jqueryui-showlink1.htm)からリンクをクリックすると、Googleのコンテンツに基づく結果が表示されますグリッドの 'name'カラム。 Googleは内部的にデータベースへのリクエストを行い(WHEREを使用してSELECTと比較することができます)、フィルタリングされた結果を表示します。 – Oleg

+0

編集中のコードで、パラメータをサーバーに送信しようとしています。 @Path( "/ {cellValue}")を使用することで、バックエンドコードの変数としてcellValueを使用できますか?これは私が正常にパラメータを転送し、クエリステートメント(SELECTとWHEREを使用して)で使用することができます。このように:クエリクエリ= entityManager.createQuery( "\t選択esd FROM EventSubscriptionDetailEntity esd、" + "ClientSystemEventConsumerEntity cs、" + ** "WHERE a.evt_type_name = cellValue" ** +など –

関連する問題