避免与ASP.NET gridview相关的回发

时间:2014-10-20 14:01:54

标签: asp.net ajax gridview webforms postback

在ASP.NET 4.5 C#Web表单应用程序中,我想避免在按钮单击事件上进行回发,该事件从数据库中提取数据并绑定gridview。 gridview将在每一行上都有一个编辑按钮。我想在单击该编辑按钮时避免回发。每行还会有一个按钮,点击时会显示一个模态弹出窗口,这个弹出窗口会有按钮。关闭模态弹出窗口后,将更新该gridview行中的数据。

我一直在使用updatepanels。它们确实避免了整页刷新,但不会减少viewstate。 gridview将返回很多行。因此,当我点击gridview中的任何按钮时,即使gridview进入编辑模式或弹出窗口显示也需要一段时间。我该如何减少或消除这种时滞?谢谢。

1 个答案:

答案 0 :(得分:2)

评论 -

SPA(不发布或回发的单页应用)和WebForms混合不佳。

  1. 您将无法利用第三方库的大部分功能,这对我来说是WebForms的主要优势 - 能够立即获得如此多的功能。
  2. 您可以通过在每个回发上抛出异常来禁用回发。 (IsPostBack测试)
  3. MS-Ajax是craptastic。我试着用它,我后悔了。许多第三方WebForm库与它相关联。即使MS已经认识到MS-Ajax是一个失败的产品,并且不再推动它了。
  4. 如果您选择SPA库,请选择一个,例如Angular或JQuery或其他什么。当你把两者放在页面上时,他们争取控制DOM。
  5. WebForms甚至不是一个好的模板语言。当你需要处理客户端ID时,一个好的模板语言会造成不间断的痛苦。在WebForms中,更容易在单个页面上生成所有模板并显示和隐藏部分,而不是动态生成部分,这是有道理的,因为WebForms是服务器端模板语言 - 这可以构成一个巨大的页面。您可以使用MS-Ajax,但是当通过执行模板化客户端跳过该步骤时,它会回调服务器以获取更多模板标记。