我有一种情况需要忽略isPostback = true中的页面加载子部分。基本上在isPostBack里面我想要的东西就像button1导致回发....这样做就是这样做...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack = True Then
If TextBox1.Text <> String.Empty Then
CheckDate()
End If
End If
End Sub
答案 0 :(得分:2)
我认为您需要的是对触发回发的控件名称的引用。
http://geekswithblogs.net/mahesh/archive/2006/06/27/83264.aspx
实施上述链接中的解决方案(从此处获取.... How to Get Source of postback)
如果控件名称是您的按钮,则不要执行回发时需要执行的操作。
HTH
答案 1 :(得分:1)
你可能不应该在Page_Load事件中进行所有这些操作。相反,您应该处理可能导致回发的每个控件的事件。这有助于提高代码清晰度,并且易于维护,更不用说首先进行更好的控制了。
这是我在这个主题上发现的一个很好的简短博客文章:http://www.sitepoint.com/blogs/2007/01/21/page_load-is-evil/
顺便提一下,处理事件在ASP.NET中与在其他环境中的处理情况大不相同,我的猜测,基于你在Page_Load事件中试图完成此事实的事实是你还没有“得到”事件驱动的编程模型。 (如果我错了,我道歉,我不是故意侮辱)。
如果我是对的,那么,一旦你习惯了它,对你来说比在经典ASP时代的事情要简单得多,例如,你必须做的事情就像试图找出来一样单击了哪个按钮。这是另一篇很好的文章,可以进一步解释这一点:http://articles.sitepoint.com/article/driven-asp-net-development-c
答案 2 :(得分:1)
很难将此视为一个好主意。在您发布的简短代码段中,看起来您真正需要的是附加到文本框的验证控件。
答案 3 :(得分:0)
查看已发布的项目。你应该在那里看到对那个按钮的某种引用。 IIRC,如果被点击,你会在那里看到某种参考,如果不是,它就不会在那里。 一段时间以前我遇到了同样的问题,这就是我绕过加载某些东西的方式。