Tapestry 保存文件对话框

Tapestry save file dialog

我学习了 Tapestry 版本 5。我在其中构建了一个树模型,它展示了目录中的文件。

<t:tree t:id="tree" t:model="stuffModel" t:node="treeNode" t:value="classificationNode">
    <p:label>
    <t:if test="treeNode.leaf">
    <a t:type="EventLink" t:event="leafSelected" t:context="classificationNode.name" t:zone="selectedZone" class="prop:leafClass" href="#"> ${treeNode.label} </a>
    </t:if>
    <t:if test="!treeNode.leaf">
            ${treeNode.label}
    </t:if>
    </p:label>

通过单击其中一个文件,我构建了一个 StreamResponse(我使用了 jumpstart 代码中的片段(页面:http://jumpstart.doublenegative.com.au/jumpstart/examples/navigation/returntypes1

我的问题和我的问题是如何显示一个保存文件对话框来帮助用户指向下载文件夹。 为了真正下载文件,我必须右击然后选择 "save file as..." ?

将此添加到您的代码中。

{
    public partial class Form1 : Form
    {
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // When user clicks button, show the dialog.
        saveFileDialog1.ShowDialog();
    }

    private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
    {
        // Get file name.
        string name = saveFileDialog1.FileName;
        // Write to the file name selected.
        // ... You can write the text from a TextBox instead of a string literal.
        File.WriteAllText(name, "test");
    }
    }
}

您似乎在 Tapestry 邮件列表中找到了答案。对于其他看这里的人,请参阅 http://www.mail-archive.com/search?l=users@tapestry.apache.org&q=subject:Re%5C%3A+Save+File+Dialog+after+response+building&o=newest

解决方案是删除模板的区域部分,因为来自服务器的 returns JSON 数据会导致通信处理中断。 相关post: http://www.mail-archive.com/users%40tapestry.apache.org/msg75396.html