【问题标题】:ASP .NET AJAX: UpdatePanel uploads entire page on postback?ASP .NET AJAX:UpdatePanel 在回发时上传整个页面?
【发布时间】:2009-06-08 15:06:21
【问题描述】:

有人可以解释一下 UpdatePanel 的工作原理吗? UpdatePanel 回发时上传了什么?

我知道如何更新部分内容,但只上传部分页面怎么样?

不是关于 UploadFile 控制,而是关于回传上传。
页面中的所有控件是否都通过 UploadPanel 回发上的回发发送?

【问题讨论】:

  • “只上传部分页面”:上传还是更新?
  • 我的问题是关于上传什么? (通过回发在服务器上发送)当 UpdatePanel 被触发时。

标签: asp.net-ajax


【解决方案1】:

当在客户端刷新更新面板时,POST 请求会发回与正常回发相同的数据。在服务器上,请求将通过它的正常生命周期运行,不同之处在于,渲染只会在作为在此请求期间更新的更新面板的子控件上调用。此部分 html 被发送回客户端,AJAX 库会将新的 html 插入到代表更新面板的客户端元素中。

【讨论】:

  • 我被这样的回答吓到了。
    看来我是对的,整个页面都是回发,服务器看到这个就像一个正常的回发。
【解决方案2】:

始终会启动完整的回发并运行整个页面。

但是,您可以通过使用来检测它是否是部分回发

ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack

并检测通过哪个Updatepanel进行更新

Request["__EVENTTARGET"] == upFlightFare.ClientID

这应该会让您更轻松地处理服务器端的完整回发。

【讨论】:

    【解决方案3】:

    如果回发源自您的 UpdatePanel 并且您的 UpdatePanel 设置为允许 PartialRendering,则 UpdatePanel 中的内容就是发送/接收的内容,除非您在 PostBackTrigger 集合中指定了一个回发控件。在这种情况下会触发完整的回发,并且您的输入页面将回发。

    我希望这能澄清一点, JP

    编辑:为了清晰和简洁。

    【讨论】:

    • 我认为您误解了这个问题。无论是否使用更新面板,所有内容都会发回。唯一的区别是渲染作为提到的第一个答案。指定一个回发触发器,它只允许您强制执行正常回发,与返回服务器的数据量无关。也不确定您所说的allowpartialrendering是什么意思。它是允许部分渲染的更新面板本身,它不是您在更新面板上设置的。也许你在谈论 updatemode=conditional 虽然不是一回事。
    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 2012-03-09
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多