ASP.NET:HtmlGenericControl <div> - 刷新</div>

时间:2011-05-04 16:53:08

标签: javascript asp.net htmlgenericcontrol

我有一个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,以便随时保存最新内容?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用新值更新asp:Hidden,并在回发时使用该值。 PlaceHolder控件不是双向控件。

E.g。

function UpdateText()
{
    var text = ...;    

    document.getElementById("<%= path.ClientID %>").innerText = text;
    document.getElementById("<%= pathHidden.ClientID %>").value = text;
}