ASP.NET:HtmlGenericControl
- 刷新

发布于 2024-11-05 02:29:01 字数 1110 浏览 2 评论 0 原文

我有一个 DIV 元素:

<div runat="server" id="path">Nothing here... yet</div>

和动态更改其内容的 JavaScript。经过一些操作后,我的元素看起来像这样(用 Firebug 测试,JS 没问题):

<div runat="server" id="path">FirstTest - SecondTest - ThirdTest</div>

然后我想将其保存到文本文件( ):

<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>

它也可以正常工作(保存对话框弹出窗口,用户选择位置),但是......在输出文件中只有一行“这里什么都没有......还”。看起来他对 JavaScript 所做的更改没有反应!

我如何强制他刷新DIV,以便我始终可以保存最新内容?

感谢您的帮助!

I have a DIV element:

<div runat="server" id="path">Nothing here... yet</div>

and JavaScript which changes its content dynamically. After some actions my element looks like this (tested with Firebug, JS is ok):

<div runat="server" id="path">FirstTest - SecondTest - ThirdTest</div>

Then I'd like to save it to text file (<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>

It also works OK (SaveDialog popups, user choose location), but... in output file there's only one line "Nothing here... yet". It looks like he doesn't react to changes made by JavaScript!

How can I force him to refresh DIV, so I can always save up-to-date content?

Thanks for any help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薆情海 2024-11-12 02:29:01

您可以使用新值更新 asp:Hidden 并在回发时使用该值。 PlaceHolder 控件并非设计为双向控件。

例如

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

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

You could update an asp:Hidden with the new value and use that value instead on the post back. The PlaceHolder control is not designed to be a two-way control.

E.g.

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

    document.getElementById("<%= path.ClientID %>").innerText = text;
    document.getElementById("<%= pathHidden.ClientID %>").value = text;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文