2014-10-20 49 views
0

在ASP.NET 4.5 C#web表单应用程序中,我想避免回发一个按钮单击事件,该事件从数据库中提取数据并绑定gridview。 GridView将在每一行上都有一个编辑按钮。我希望避免在单击编辑按钮时回发。在每行上也会有一个按钮,点击时会显示模式弹出窗口,并且此弹出窗口将显示按钮。当模式弹出窗口关闭时,该gridview行中的数据将被更新。避免与ASP.NET GridView相关的回发

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

+1

你的问题对于SO来说不是一个好的格式。你试图一次问得太多,而且你还要求我们推荐软件。不允许向我们推荐软件的问题。至于你的主要问题,我建议不要为此使用GridView或UpdatePanels。相反,禁用ViewState,然后使用中继器创建HTML表格。在桌子内部使用运行本地JavaScript的按钮,如果需要与服务器通信,则使用AJAX。 – mason 2014-10-20 14:05:16

+0

谢谢梅森,我会检查出来。如果有人为了同样的目的而使用了软件并且喜欢它,我想知道。是的,这不是主要问题。 – engg 2014-10-20 14:50:07

+1

是的,许多人在对生成的HTML使用更精细的控制时使用中继器技术。 [大多数人](http://stackoverflow.com/questions/113479/when-to-enable-disable-viewstate)(和微软)现在建议禁用ViewState,并且只有在需要时才选择性地启用ViewState。 – mason 2014-10-20 14:52:02

回答

2

一个comment-

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进行排序,但是如果通过模板客户端可以跳过该步骤,则可以调回服务器以获取更多模板标记。
+0

感谢马修马丁。现在为了避开webforms并切换到MVC或其他东西已经太晚了。 – engg 2014-10-20 17:29:06

+1

@engg所有这些都是很好的建议。不,现在切换到MVC还不算太晚(或者至少放弃MS-AJAX来支持jQuery UI或类似)。如果你坚持不好的技术,从长远来看,这会让你付出更多的代价。你能使用Web Forms有效吗?当然。但我发现更有效的技术倾向于使用MVC/[网页](http://www.asp.net/web-pages)反正(例如:Repeater而不是GridView,你可能会以及使用Razor'foreach'循环)。 – mason 2014-10-20 18:08:53

+0

我正在调查MVC。学习曲线如何从webforms切换到MVC? – engg 2014-10-21 13:46:45