我有一个DIV
元素:
<div runat="server" id="path">Nothing here... yet</div>
和JavaScript动态更改其内容。经过一些操作后,我的元素看起来像这样(用Firebug测试,JS就可以了):
<div runat="server" id="path">FirstTest - SecondTest - ThirdTest</div>
然后我想将其保存到文本文件(<asp:Button runat="server"...
):
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
Button1.Click += new EventHandler(this.GreetingBtn_Click);
}
void GreetingBtn_Click(Object sender, EventArgs e)
{
HtmlGenericControl path = (HtmlGenericControl)Page.FindControl("path");
Response.AddHeader("content-disposition", "attachment;filename=download.txt");
Response.ContentType = "text/plain";
Response.Write(path.InnerText);
Response.Flush();
Response.Clear();
Response.End();
}
</script>
它也可以正常工作(SaveDialog弹出窗口,用户选择位置),但是...在输出文件中只有一行“Nothing here ...”。看起来他对JavaScript所做的更改没有反应!
如何强迫他刷新DIV
,以便随时保存最新内容?
感谢您的帮助!
答案 0 :(得分:0)
您可以使用新值更新asp:Hidden
,并在回发时使用该值。 PlaceHolder
控件不是双向控件。
E.g。
function UpdateText()
{
var text = ...;
document.getElementById("<%= path.ClientID %>").innerText = text;
document.getElementById("<%= pathHidden.ClientID %>").value = text;
}