1

私のウェブサイトには2つのフレームがあります。フレーム A にはナビゲーション バーが表示され、別のフレーム B にはメイン コンテンツが表示されます。

フレーム A は、コンピューター内のすべてのファイルの名前を表示できるディレクトリ リスト、jstree オブジェクトです。

フレーム A をクリックすると、フレーム B にファイルの内容が表示されます。同時に、フォルダーをクリックすると、フレーム A のフォルダーが拡張されます。つまり、フレーム A をクリックすると、2 つのイベントが発生します (フォルダーの場合は、フレーム A でフォルダーを展開し、フレーム B にフォルダーのパスのみを表示します)。

これで、フォルダーを展開できますが、フレーム A でファイルの名前をクリックしても、フレーム B にファイルの内容が表示されません。フレーム B にファイルの内容を表示したい場合はどうすればよいですか?

フレーム B のページは django フォームです。

class FileForm(forms.Form):
    path = forms.CharField(max_length = 300, label = u"file path", help_text = u"file full path", error_messages = {"required" : ""})
    text = forms.CharField(max_length = 300, widget = forms.Textarea, label = u"file text", help_text = u"file content", error_messages = {"required" : ""})

フレーム A でファイル名をクリックすると、このフォームを使用して html を生成できます。

def get_render_conf_text_info(request):
    if request.method == "POST":
        tmp_file_text = ""
        tmp_file_path = ""
        ....
        tmp_form = FileForm(initial = {'path' : tmp_file_path, 'text' : tmp_file_text})
        return render_to_response('conf_nav_right2.html', {'form' : tmp_form}, context_instance=RequestContext(request))
    else:
        tmp_form = FileForm(initial = {'path' : '', 'text' : ''})
        return render_to_response('conf_nav_right2.html', {'form' : tmp_form}, context_instance=RequestContext(request))

フレームAのhtmlコード(jstree.jsを使用):

<ul>
<li id="file_0_a1.cfg" class="0 jstree-close jstree-leaf" value="0" rel="file">
    <ins class="jstree-icon">&nbsp;</ins>
    <a href="#" class="jstree-clicked" target="conf_nav_right">
        <ins class="jstree-icon">&nbsp;</ins>
        a1.cfg
    </a>
</li>
<li id="folder_1_remote" class="1 jstree-close jstree-leaf" value="0" rel="folder">
    <ins class="jstree-icon">&nbsp;</ins>
    <a href="#" class="">
        <ins class="jstree-icon">&nbsp;</ins>
        remote
    </a>
</li>
</ul>

conf_nav_right」はフレーム B の名前です。

どんな助けでも大歓迎です!

4

1 に答える 1

0

私は最終的にこの問題を解決します。htmldocument で関数 write() を使用するだけです。

この問題にも遭遇した場合は、試してみてください。

于 2013-05-26T07:13:14.620 に答える