2016-07-05 30 views
0

我的用戶界面是一個jQuery網格。我如何發送參數的功能(創建我的查詢)點擊從我的用戶界面jQuery網格?如何發送一個參數點擊用於SQL查詢?

例如,如果這是我的網格: http://www.ok-soft-gmbh.com/jqGrid/OK/formEditOnDoubleClick-jqueryui-showlink.htm#

我想發送到查詢的客戶端名稱作爲過濾器來使用。 下一頁(不是谷歌鏈接,如客戶端點擊時的示例所示)將有一個網格,僅列出具有該客戶端的公司。

如何使用此功能創建查詢?

我想知道如何從我的用戶界面發送參數到後端查詢功能。

編輯****

這就是我想出了 -

裏面的UI代碼(即創建的jqGrid):

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

只是將客戶端的ID /名稱附加到後端URL /端點,如下所示:http:// domain?name = client-name – binariedMe

+0

如果數據不是私人的,我只需將其添加到URL上面的評論。但是,如果它是私人的,或者你想要一個更清潔的操作,那麼我會做一個[ajax](http://www.w3schools.com/jquery/ajax_ajax.asp)調用,並用它發送數據。 –

+0

@binariedMe好吧我對該帖子進行了修改。那是你的建議嗎? –

回答

0

我張貼the demothe answer你以前的問題和描述options參數的屬性。 rowid是rowid。因此可以使用getLocalRowgetRowDatagetCell)來訪問該行中的數據。然後,一個可以只追加

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

你可以看到the modified demo結果。我提醒onClick可以定義在formatoptionsformatter: 'showlink'free jqGrid叉,這是我開發的。

如果您更喜歡使用自定義格式化程序,則可以使用thisevent來定義值onclick。您可以修改以下

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

然後你可以使用$(this).closest("tr.jqgrow").attr("id")內的callCompanies函數獲取ROWID在你的代碼用於例如代碼片斷onclick="callCompanies(\''+cellValue+'\');"。它允許使用getLocalRow,getRowDatagetCell從行中獲取數據。

+0

謝謝!我已經有鏈接工作得很好;我真正想知道的是sql。你知道我可以如何將這個變量,在這個例子中的item.name,我的sql代碼?我會用一個路徑來傳遞參數嗎? (如上所示),我可以使用參數來過濾我嘗試過的方式嗎? –

+0

@JulesMena:JavaScript不能直接執行SQL語句,但可以將*參數*發送到服務器。在例子中'q'參數被'google.com'用於搜索。如果您點擊[修改後的演示](http://www.ok-soft-gmbh.com/jqGrid/OK/formEditOnDoubleClick-jqueryui-showlink1.htm)中的鏈接,則Google會根據網格的「名稱」欄。 Google在內部向數據庫發出請求(可以使用WHERE與SELECT進行比較)並顯示過濾結果。 – Oleg

+0

在我編輯的代碼中,我試圖將參數發送到服務器。通過使用@Path(「/ {cellValue}」)我可以在我的後端代碼中使用cellValue作爲變量嗎?這是我可以成功傳輸參數並在查詢語句中使用它的一種方式(使用SELECT和WHERE)。像這樣:Query query = entityManager.createQuery(「\t Select esd FROM EventSubscriptionDetailEntity esd,」+「ClientSystemEventConsumerEntity cs」,+ **「WHERE a.evt_type_name = cellValue」** + ...... etc –