从< g:每个>传递参数在JavaScript函数中的createLink中指定的操作,在点击< a:>时调用。链接 [英] Passing params from within <g:each> to action specified in createLink within a javascript function, called on clicking <a:> link

查看:140
本文介绍了从< g:每个>传递参数在JavaScript函数中的createLink中指定的操作,在点击< a:>时调用。链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含ag的模板:每个模板都以表格形式呈现一组搜索结果,如下所示:

 < g:if test =$ {company}> 
< table cellpadding =0cellspacing =0>
< thead>
< tr>
< th class =medium>< g:message code =TDCID/>< / th>
< th class =tiny>< g:message code =STREET/>< / th>
< / tr>
< / thead>
< tbody>

< tr>
< td>
< a:href =javascript:void(0)onClick =javascript:asd(); params =[tdc:PNo.tdcId,companyid:PNo.companyId,companytype:PNo.companyType]> // params:传递不工作now.Have传递tdcId,companyId,companyType被点击的结果
$ {PNo.officialName}
< / a:>
< / td>
< td>
$ {PNo.tdcId}

< / td>
< td>

$ {PNo.street}

< / td>
< / tr>

< / g:每个>
< / tbody>
< / table>
< / g:if>

我需要将用户点击的公司对象中包含的tdcId,companyId,companyType传递给以下JavaScript函数:

pre $ function asd(){
window.open($ {g.createLink(controller:'客户,操作:'showcontacts',params:'[tdc:company.tdcId,companyid:company.companyId,companytype:company.companyType]')},'','width = 200,height = 100');
}

这里从asd()我需要传递params到action:'showcontacts '通过createLink标签。

这是调用gsp:_customers.gsp:

 < script type =text / javascript> 
函数asd(tdcId,companyId,companyType){
alert(tdcId);
var link =$ {g.createLink(controller:'Customer',action:'showcontacts')}?tdc =+ tdcId +& companyid =+ companyId +& companytype =+公司类型;
window.open(link,'','width = 200,height = 100');
}

< / script>

< div class =form-edit>
< div class =heading>
< strong>
< / strong>
< / div>

< div id =haiclass =form-hold>
< fieldset>
< div class =form-columns>


< div class =column>
< g:applyLayout name =form / input>
< content tag =label>< g:message code =公司名称/< / content>
< content tag =label.for>公司< / content>
< / g:applyLayout>
< g:applyLayout name =form / checkbox>
< content tag =label>< g:message code =以/< / content>开头
< content tag =label.for>以< / content>开头
< / g:applyLayout>
< g:applyLayout name =form / input>
< content tag =label>< g:message code =Street/>< / content>
< content tag =label.for> Street< / content>
< / g:applyLayout>

< g:applyLayout name =form / checkbox>
< content tag =label>< g:message code =以/< / content>开头
< content tag =label.for>以< / content>开头
< / g:applyLayout>
< g:applyLayout name =form / input>
< content tag =label>< g:message code =Zip code/>< / content>
< content tag =label.for> Zip< / content>
< g:textField class =fieldname =ZipCode/>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =Fagrubrik/< / content>
< content tag =label.for> Fagrubrik< / content>
< g:textField class =fieldname =Fagrubrik/>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =House no。/< / content>
< content tag =label.for> HouseNo< / content>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =Tel./Fax。/< / content>
< content tag =label.for>电话< / content>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =Company No。/< / content>
< content tag =label.for> CompanyNo< / content>
< g:textField class =fieldname =CompanyNo/>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =City/>< / content>
< content tag =label.for>城市< / content>
< g:textField class =fieldname =City/>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =TDC ID/>< / content>
< content tag =label.for> TdcId< / content>
< g:textField class =fieldname =TdcId/>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =Industry Designation/>< / content>
< content tag =label.for>行业指定< / content>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =Decision Maker/< / content>
< content tag =label.for>> DecisionMaker< / content>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =Email/>< / content>
< content tag =label.for>电子邮件< / content>
< / g:applyLayout>

< g:applyLayout name =form / input>
< content tag =label>< g:message code =WWW/>< / content>
< content tag =label.for> WWW< / content>
< g:textField class =fieldname =WWW/>
< / g:applyLayout>
< / div>


< / div>


< div>
< br />& nbsp;
< / div>

< div id =buttonclass =buttons>
< ul>
< li>
< g:submitButton class =buttonsid =buttonname =Search
value =Searchaction =search/>
< / li>
< / ul>
< / div>

< / fieldset>

< / g:表格>
< div class =table-box>
< g:if test =$ {company}>< table cellpadding =0cellspacing =0>
< thead>
< tr>
< th class =medium>< g:message code =TDCID/>< / th>
< th class =tiny>< g:message code =STREET/>< / th>
< / tr>
< / thead>
< tbody>

< tr>
< td>
onClick =javascript:asd('$ {PNo.tdcId}','$ {PNo.companyId}',

< a href =javascript:void(0) '$ {PNo.companyType}');> $ {PNo.officialName}< / A>


< / td>
< td>
onSuccess =render(data,next); PARAMS =[模板:节目]>
$ {PNo.tdcId}
< / g:remoteLink>
< / td>
< td>

$ {PNo.street}

< / td>
< / tr>

< / g:每个>
< / tbody>
< / table>
< / g:if>
< / div>
< / div>
< / div>

这是用于测试目的的名为.showcontacts.gsp:

 < body> 

< div id =dialogtitle =Contacts>
hai
< / div>


< / body>


解决方案

更改您的标签:

 < a href =javascript:void(0)onClick =javascript:asd('$ {PNo.tdcId}','' $ {PNo.companyId}','$ {PNo.companyType}');> $ {PNo.officialName}< / a> 

脚本如下:

 <脚本> 
function asd(tdcId,companyId,companyType){
var link =$ {g.createLink(controller:'test',action:'test')}?tdc =+ tdcId +& amp ; companyid =+ companyId +& companytype =+ companyType;
window.open(link,'','width = 200,height = 100');
}
< / script>

享受..

I have a template containing a g:each that renders a set of search results in tabular format as follows:

<g:if test="${company}">
<table cellpadding="0" cellspacing="0">
<thead>
    <tr>
        <th class="small"><g:message code="Company Name"/></th>
        <th class="medium"><g:message code="TDCID"/></th>
        <th class="tiny"><g:message code="STREET"/></th>
    </tr>
 </thead>
 <tbody>
    <g:each in="${company}" status="idx" var="PNo">

       <tr>
         <td>
         <a: href="javascript:void(0)" onClick="javascript:asd();" params="[tdc:PNo.tdcId,companyid:PNo.companyId,companytype:PNo.companyType]">//params: passing not working now.Have to pass the tdcId,companyId,companyType of clicked result
                ${PNo.officialName}
         </a:>
         </td>
         <td>
                          ${PNo.tdcId}

         </td>
         <td>

              ${PNo.street}

         </td>
       </tr>

    </g:each>
   </tbody>
  </table>     
  </g:if>

I need to pass tdcId,companyId,companyType contained in company object that is clicked by user to the following JavaScript function:

function asd(){
 window.open("${g.createLink(controller: 'Customer', action:   'showcontacts',params:'[tdc:company.tdcId,companyid:company.companyId,companytype:company.companyType]')}",'', 'width=200,height=100');
 }

Here from asd() I need to pass the params to action:'showcontacts' through createLink tag. What is the right way to do this?

This is the calling gsp: _customers.gsp:

<script type="text/javascript">
function asd(tdcId, companyId, companyType) {
 alert(tdcId);
   var link = "${g.createLink(controller: 'Customer', action: 'showcontacts')}?tdc=" + tdcId +  "&companyid=" + companyId + "&companytype=" + companyType;
   window.open(link, '', 'width=200,height=100');
}

</script>

<div class="form-edit">
    <div class="heading">
        <strong>
            <g:message code="Firm Profile"/>
        </strong>
    </div>

    <div id="hai" class="form-hold">
        <g:form name="company-edit-form" action="save">
            <fieldset>
                <div class="form-columns">


                    <div class="column">
                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Company Name"/</content>
                            <content tag="label.for">Company</content>
                            <g:textField class="field" name="Company"  id="Company"  />
                        </g:applyLayout>
                         <g:applyLayout name="form/checkbox">
                             <content tag="label"><g:message code="Starts with"/</content>
                             <content tag="label.for">Starts with</content>
                             <g:checkBox class="cb checkbox" name="StartsWith" />
                        </g:applyLayout>
                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Street"/></content>
                            <content tag="label.for">Street</content>
                            <g:textField class="field" name="Street" />
                        </g:applyLayout>

                         <g:applyLayout name="form/checkbox">
                             <content tag="label"><g:message code="Starts with"/</content>
                             <content tag="label.for">Starts With</content>
                             <g:checkBox class="cb checkbox" name="StreetStartsWith"/>
                        </g:applyLayout>
                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Zip code"/></content>
                            <content tag="label.for">Zip</content>
                            <g:textField class="field" name="ZipCode"/>
                        </g:applyLayout>

                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Fagrubrik"/</content>
                            <content tag="label.for">Fagrubrik</content>
                            <g:textField class="field" name="Fagrubrik" />
                        </g:applyLayout>

                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="House no."/</content>
                            <content tag="label.for">HouseNo</content>
                            <g:textField class="field" name="HouseNo" />
                        </g:applyLayout>

                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Tel./Fax."/</content>
                            <content tag="label.for">Telephone</content>
                            <g:textField class="field" name="Telephone" />
                        </g:applyLayout>

                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Company No."/</content>
                            <content tag="label.for">CompanyNo</content>
                            <g:textField class="field" name="CompanyNo" />
                        </g:applyLayout>

                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="City"/></content>
                            <content tag="label.for">City</content>
                            <g:textField class="field" name="City" />
                             </g:applyLayout>

                        <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="TDC ID"/></content>
                            <content tag="label.for">TdcId</content>
                            <g:textField class="field" name="TdcId" />
                             </g:applyLayout>

                             <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Industry Designation"/></content>
                            <content tag="label.for">Industry Designation</content>
                            <g:textField class="field" name="IndustryDesignation" />
                             </g:applyLayout>

                             <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Decision Maker"/</content>
                            <content tag="label.for">DecisionMaker</content>
                            <g:textField class="field" name="DecisionMaker" />
                             </g:applyLayout>

                             <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="Email"/></content>
                            <content tag="label.for">Email</content>
                            <g:textField class="field" name="Email" />
                             </g:applyLayout>

                             <g:applyLayout name="form/input">
                            <content tag="label"><g:message code="WWW"/></content>
                            <content tag="label.for">WWW</content>
                            <g:textField class="field" name="WWW"/>
                             </g:applyLayout>
                    </div>


                </div>


                <div>
                    <br/>&nbsp;
                </div>

                <div id="button" class="buttons">
                    <ul>
                        <li>
                        <g:submitButton class="buttons" id="button" name="Search"
    value="Search" action="search"/>
                          </li>
                        </ul>
                </div>

            </fieldset>

        </g:form>
           <div class="table-box">
           <g:if test="${company}"><table cellpadding="0" cellspacing="0">
   <thead>
    <tr>
        <th class="small"><g:message code="Company Name"/></th>
        <th class="medium"><g:message code="TDCID"/></th>
        <th class="tiny"><g:message code="STREET"/></th>
    </tr>
  </thead>
  <tbody>
    <g:each in="${company}" status="idx" var="PNo">

       <tr>
         <td>
         <a href="javascript:void(0)"
  onClick="javascript:asd('${PNo.tdcId}','${PNo.companyId}', 
  '${PNo.companyType}');">${PNo.officialName}</a>


         </td>
         <td>
         <g:remoteLink action="show" id="${PNo}" before="register(this);" 
                       onSuccess="render(data, next);" params="[template:'show']">
             ${PNo.tdcId}
         </g:remoteLink>
         </td>
         <td>

              ${PNo.street}

         </td>
       </tr>

    </g:each>
   </tbody>
   </table>     
  </g:if>
  </div>
  </div>  
  </div>

This is the called one for test purposes.named _showcontacts.gsp:

 <body>

<div id="dialog" title="Contacts">
 hai
</div>


</body>

解决方案

Change your a tag like this:

<a href="javascript:void(0)" onClick="javascript:asd('${PNo.tdcId}', '${PNo.companyId}', '${PNo.companyType}');">${PNo.officialName}</a>

And Script like this:

<script>
function asd(tdcId, companyId, companyType) {
   var link = "${g.createLink(controller: 'test', action: 'test')}?tdc=" + tdcId + "&companyid=" + companyId + "&companytype=" + companyType;
   window.open(link, '', 'width=200,height=100');
}
</script>

Enjoy..

这篇关于从&lt; g:每个&gt;传递参数在JavaScript函数中的createLink中指定的操作,在点击&lt; a:&gt;时调用。链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆