1

基於AJAX的Django的無端分頁有2個模板: 1.主issue_detail.html 2.分頁模板issue_detail_page.html怎麼做Django的就地編輯與基於AJAX的Django無端分頁沿着

在在base.html文件模板,extra_header塊前右我:

{% inplace_static %} 

我嘗試做的issue_detail_page.html如下:

{% load endless %} 
{% load inplace_edit %} 

{% lazy_paginate 2 completed_actions using "completed_actions_page" %} 
    {% for action in completed_actions %} 
     <tr> 
      <td><a href="{% url 'action_detail' issuelist.id issue.id action.id %}">{{action.title}}</a></td> 
      <td>{% inplace_edit "action.owner" %}</td> 
      <td>{% inplace_edit "action.event_date" %}</td> 
      <td>{% inplace_edit "action.state" %}</td> 
     </tr> 
    {% endfor %} 
{% show_more %} 

但是Ajax加載的頁面(表格數據)不可編輯。

我檢查了HTML,發現第一/原始表的數據是:

<span class="inplaceedit textinplaceedit enable"> 

而該網頁後使用AJAX通過點擊「更多」鏈接加載表中的數據:

<span class="inplaceedit textinplaceedit"> 

有人可以請建議如何使這項工作?

回答

0

試試這個:

$.getScript("{{ STATIC_URL }}js/jquery.json.js").done(function(script, textStatus) { 
$.getScript("{{ STATIC_URL }}js/jquery.inplaceeditform.js").done(function(script, textStatus) { 
    var options = {"getFieldUrl": "/inplaceeditform/get_field/", 
      "saveURL": "/inplaceeditform/save/", 
      "successText": "Successfully saved", 
      "eventInplaceEdit": "click", 
      "disableClick": true, 
      "autoSave": true, 
      "unsavedChanges": "You have unsaved changes!", 
      "enableClass": "enable", 
      "fieldTypes": "input, select, textarea", 
      "focusWhenEditing": true}; 
    var inplaceManager = $(".inplaceedit:not(.enable)").inplaceeditform(options); 
    inplaceManager.enable(); 
}); 
}); 
0

替換文件inplace_js.htmljquery.inplaceeditform.js

  • inplace_js.html

    <!-- it needs jquery to work 
    <script src="//code.jquery.com/jquery-2.1.4.js" type="text/javascript"></script> 
    --> 
    <script src="{{ STATIC_URL }}js/jquery.json.js" type="text/javascript"></script> 
    <script src="{{ STATIC_URL }}js/jquery.inplaceeditform.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
        $.inplaceeditform.inplaceManager={} 
        $.inplaceeditform.inplaceManager.options = {"getFieldUrl": "{{ inplace_get_field_url }}", 
                   "saveURL": "{{ inplace_save_url }}", 
                   "successText": "{{ success_text }}", 
                   "eventInplaceEdit": "{{ event }}", 
                   "disableClick": {{ disable_click }}, 
                   "autoSave": {{ auto_save }}, 
                   "unsavedChanges": "{{ unsaved_changes }}", 
                   "enableClass": "{{ enable_class }}", 
                   "fieldTypes": "{{ field_types }}", 
                   "focusWhenEditing": {{ focus_when_editing }}}; 
    </script> 
    <script src="{{ STATIC_URL }}js/jquery.inplaceeditform.hooks.js" type="text/javascript"></script> 
    
    {% if activate_inplaceedit %} 
        <script type="text/javascript"> 
         var isIE = function() { 
          if(typeof jQuery!== typeof undefined && jQuery.browser === undefined){ 
           jQuery.browser = { msie : true}; 
         }}; 
        </script> 
        <!--[if IE]> 
         <script type="text/javascript"> 
          isIE(); /* IE <= 9*/ 
         </script> 
        <![endif]--> 
        <!--[if !IE]><!--> 
         <script type="text/javascript"> 
          if (/*@[email protected]*/false) { 
           isIE(); /* IE 10*/ 
          } 
         </script> 
        <!--<![endif]--> 
        <script type="text/javascript"> 
    
         (function($){ 
          $(document).ready(function() { 
           {% include "inplaceeditform/inc.extra_options.html" %} 
    
           {% if not toolbar %} 
            $.inplaceeditform.inplaceManager.enable(); 
           {% else %} 
            {% include "inplaceeditform/inc.inplace_toolbar.html" %} 
           {% endif %} 
    
         }); 
        })(jQuery); 
        </script> 
        {% include "inplaceeditform/inc.csrf_token.html" %} 
        {{ inplace_js_extra|safe }} 
    {% endif %} 
    
  • jquery.inplaceeditform.js

    $.extend($.inplaceeditform.inplaceManager, { 
        enable: function() { 
         $(".inplaceedit").inplaceeditform($.inplaceeditform.inplaceManager.options).enable(); 
        }, 
        disable: function() { 
         $(".inplaceedit").inplaceeditform($.inplaceeditform.inplaceManager.options).disable(); 
        } 
    }); 
    

隨時隨地實現inplaceedit,嘗試: $.inplaceeditform.inplaceManager.enable();