ASP.NET: HtmlGenericControl <DIV> - обновить

У меня есть 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, пользователь выбирает местоположение), но... в выходном файле есть только одна строка "Ничего здесь... пока". Похоже, он не реагирует на изменения, сделанные JavaScript!

Как я могу заставить его освежиться DIV, так что я всегда могу сохранить актуальный контент?

Спасибо за любую помощь!

1 ответ

Решение

Вы можете обновить asp:Hidden с новым значением и используйте это значение вместо поста обратно. PlaceHolder Контроль не предназначен для двустороннего контроля.

Например

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

    document.getElementById("<%= path.ClientID %>").innerText = text;
    document.getElementById("<%= pathHidden.ClientID %>").value = text;
}
Другие вопросы по тегам