ASP NET自定义服务器控件中的事件

时间:2015-11-02 13:41:09

标签: c# asp.net webforms custom-server-controls

我想知道在我的自定义服务器控件中调用回发的两种方法有什么区别:

Page.ClientScript.GetPostBackEventReference(new PostBackOptions (this)) 

或手动

__doPostBack('MyControl1', '')

这两种解决方案中哪一种更适合?为什么?

1 个答案:

答案 0 :(得分:1)

我发现作为一般经验法则,最好避免在JavaScript中使用这种方式对ID进行硬编码。我还发现让ASP为你生成的东西更好,因为它可以让ASP获得ASP所期望的东西。

如果您让ASP为您生成__doPostback,那么您就知道ASP知道您正在谈论哪个控件。当您使用ClientScript.GetPostbackEventReference时,您将获得有关控件的正确eventtarget和eventargument。即使您在标记中移动它或以其他方式更改其clientID,ASP仍然知道您正在谈论的内容,因为它生成了JavaScript。

当然,您可以通过良好的地方<%= MyControl1.ClientID%>来避免这个特殊的陷阱,但我认为将其保留在后端更清晰。

我试图找到一篇文章或博客来讨论这个问题来支持我,所以这不是一个严格意见,但我发现的大部分内容都是关于如何使用它而不是为什么你应该使用它的教学用它。

相关问题