【问题标题】:Grails 2.3.x Updating a List in GSP (View) and save changes in the DatabaseGrails 2.3.x 在 GSP(视图)中更新列表并将更改保存在数据库中
【发布时间】:2014-06-11 16:25:24
【问题描述】:

假设您有一个显示书籍列表的表格(就像索引一样),并且您想在名为“Sold”的列中进行更改(例如复选框)。 因此,一旦您完成“检查”已售出的书籍,您就希望将其保存在数据库中。如何将该列表发送回控制器并更新它?

所以,代码是这样的,在控制器中:

def aMethod(){
...
[bookInstanceList: myBookList]
}

在普惠制中:

        <g:each in="${bookInstanceList}" status="i" var="bookInstance">
            <tr class="${(i % 2) == 0 ? 'even' : 'odd'}">

                <td><g:link action="show" id="${bookInstance.id}">${fieldValue(bean: bookInstance, field: "author")}</g:link></td>
                <td><g:checkBox name="sold" value="${bookInstance?.sold}" /></td>
                <td>
            </tr>
        </g:each>

这个想法是通过复选框让用户更改该书的“已售出”值。如何保存我的新 bookInstanceList?

非常感谢

【问题讨论】:

    标签: list grails save gsp


    【解决方案1】:

    据我所知,您希望在用户单击复选框时动态更新后端?

    如果是这样,那么您需要一个类似这样的 ajax 调用:

     <g:each in="${bookInstanceList}" status="i" var="bookInstance">
                <tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
    
                    <td><g:link action="show" id="${bookInstance.id}">${fieldValue(bean: bookInstance, field: "author")}</g:link></td>
                    <td><g:checkBox name="sold" value="${bookInstance?.sold}" onChange="TriggerFilter(this)" /></td>
                    <td>
                </tr>
            </g:each>
    
    <g:javascript>
    function TriggerFilter(e) {
       if (e.checked==true) {
         $.get('<g:createLink action='Your_Action' controller="YourController" 
          params="[ filterbind: ''+attrs.filterbind+'',term:''+attrs.term+'' ]"/>'
          ,function(data){
             $('#FilterField').hide().html(data).fadeIn('slow');
           });
       }else{
         $('#FilterField').hide().html('').fadeIn('slow');
       }
    }
    </g:javascript>
    
    
    
    <div id="FilterField" class="filterField">
    {Result returned in here}
    </div>
    

    您需要将它 e.value 放入参数中看看 grails java script get createLink 我的插件中有很多示例:

    https://github.com/vahidhedayati/ajaxdependancyselection/tree/master/grails-app/views

    我建议在网上查看/阅读如何使用它

    您可能希望将 get 更改为:

    how to use grails ${createLink} in javascript

    var url = '${createLink(controller:'Books', action: 'update')}' + e.value ;
    $.get(url ,function(data){
                 $('#FilterField').hide().html(data).fadeIn('slow');
               });
           }else{
             $('#FilterField').hide().html('').fadeIn('slow');
           }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2011-08-12
      • 2014-06-14
      • 2018-01-19
      • 2021-12-17
      • 1970-01-01
      相关资源
      最近更新 更多