【问题标题】:Clearing text fields on vb.net project vs2008清除vb.net项目vs2008上的文本字段
【发布时间】:2011-02-13 11:44:20
【问题描述】:

总结:网页有几个字段允许用户输入付款。系统处理完付款后,这些字段没有被清除。所以我的任务是简单地清除它们。这是几行代码:

' first insert the transaction
InsertANewTransaction()

'clear out the values
txtAddTransAmount.Text = ""
ddlAddTransTypes.SelectedIndex = -1
txtComment.Text = ""

' then create and print the receipt
Payment2MsWordDoc(Payment, PaymentType, PreviousBalance, NewBalance, DueDate, ProjMinPayment)

我在中间添加了三行来重置值。问题是,它们不会重置。对 Payment2MsWordDoc 过程的文件行进行一些调试是罪魁祸首:

Response.AppendHeader("Content-Type", "application/msword")
Response.AppendHeader("Content-disposition", "attachment; filename=" + fileName)
Response.Write(strBody)

该过程正在将 HTML 收据写入 strBody 并将其显示给用户。他们看到“文件下载,您要打开还是保存此文件....”,并且可以在 ms-word 中打开收据。没有这三行,重置工作。很明显他们在搞砸什么,我就是不明白是什么。

我有一个解决方法,但我想知道发生了什么。甚至可以说这是创建/下载文档的正确方法。这在继承的系统中,最初的设计者早已不复存在。我不擅长 VB 或 Web 应用程序,所以对问题所在一无所知。

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    假设您在网页上有一个文本区域,然后在其下方有一个指向 Word 文档的常规超链接。如果您在 textarea 中键入然后单击链接,您是否希望 textarea 被清除?不,浏览器只会启动 word 文档并保持页面不变。你的表单也发生了同样的事情。提交后,服务器只是发送一个 word 文档,由于服务器没有发送任何新的 HTML,浏览器就保持原样。您清除文本字段的所有内容都无关紧要,因为新状态永远不会通过网络发送。您需要做的是向浏览器发送新的 HTML 而不是 doc。在新的 HTML 中,您可以包含指向 doc 一词的元重定向或更好的下载链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多