【问题标题】:Update Panel to update only portion of repeater更新面板以仅更新中继器的一部分
【发布时间】:2014-04-29 17:08:06
【问题描述】:

我在更新面板中有一个中继器。中继器有一个按钮和一个网格。在运行时,4 个网格将有多达 4 个按钮。单击按钮时,数据将绑定到与其关联的网格。我想要网格上的部分回发,这样如果我单击一个按钮并且数据绑定到 grid1,如果我单击另一个按钮绑定 grid2,我不想丢失已经绑定到 grid1 的数据。

我了解更新面板内的控件会导致部分页面更新。但是当我点击动态按钮时出现错误(类似于下面的错误)。

如果我尝试将按钮注册为 ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl:

Error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.
Details: Error parsing near 'SessionSession342066'.

但如果我将按钮注册为 ScriptManager.GetCurrent(Page).RegisterPostBackControl,我不会收到错误消息。但是,后者将对整个转发器进行完整的回发。

因为 id 是动态的,我似乎无法将它们添加到 <Triggers>...

有什么建议吗?

【问题讨论】:

    标签: asp.net updatepanel repeater


    【解决方案1】:

    难道你不能放弃使用更新面板,而是使用带有 Web 方法的纯 jQuery 吗?这样,您可以随意更新转发器的任何部分,而无需回发。

    【讨论】:

    • 是的,我可以,但我没有时间重写所有内容。由于不同的场景,网格内置了很多逻辑 - 排序,行突出显示。如果我使用 jquery,我必须克隆该行,我发现除了添加和删除 css 之外,克隆数百行花费的时间太长,更不用说测试以确保所有功能所需的时间了还在那儿。在时间限制下,我认为更新面板的工作量最少。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多