我有一个情况,我需要忽略页面加载子里面的一部分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
4条答案
按热度按时间k5ifujac1#
我认为您需要的是对触发回发的控件名称的引用。
Link
实现上面链接中的解决方案(从这里得到.... How to Get Source of postback)
如果控件名称是您的按钮,则在回发时不要执行需要执行的操作。
高温加热
vaj7vani2#
您可能不应该在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
jm2pwxwz3#
很难把这看作是一个好主意。从你发布的简短片段来看,你真正需要的是一个附加到文本框的验证控件。
b4qexyjb4#
看一下Posted项目。你应该在那里看到一些对该按钮的引用。IIRC,如果它被点击了,你会在那里看到一些引用,如果它不是,它不会在那里。我有一段时间前也遇到了同样的问题,这就是我如何避免加载一些东西的方法。