1

AJAX ベースの django エンドレス ページネーションには 2 つのテンプレートがあります。 1. メイン issue_detail.html 2. ページネーション テンプレート issue_detail_page.html

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">

誰かがこれを機能させる方法を提案できますか?

4

2 に答える 2

0

inplace_js.htmlファイルとを置き換えますjquery.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 (/*@cc_on!@*/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();

于 2016-06-27T06:52:39.380 に答える