2016-07-05 29 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 –