2010-04-05 23 views
0

我有一种情况,我需要忽略部分页面加载子内isPostback = true。基本上的IsPostBack里面我想要的东西一样,如果Button1的回传造成不....这否则这样做...VB.NET if 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

那么,你的问题是什么? – 2010-04-05 13:34:06

+0

对不起,我的问题是有没有办法绕过page_load子时点击一个按钮? – iamjonesy 2010-04-05 13:55:25

回答

1

我认为你需要的是触发回发的控件名称的引用。

http://geekswithblogs.net/mahesh/archive/2006/06/27/83264.aspx

实现是有在上面的链接的解决方案(从这里得到它.... How to Get Source of postback

如果控制名字是你的按钮,然后不要做需要做的事情在回发之后。

HTH

+0

嘿谢谢你,代码看起来不错,但是当我将它转换为VB.NET时出现错误。 如果(typeof运算c是(typeof运算(System.Web.UI.WebControls.Button OrElse运算c)是System.Web.UI.WebControls.ImageButton)))然后 控制= C 退出对于 结束如果 错误是“预期类型”,并且在第一个“is”之后。请帮忙! – iamjonesy 2010-04-05 14:18:28

+0

试试这个:If TypeOF c IS Button or TypeOF c is ImageButton then control = c end if if – Raja 2010-04-05 14:31:32

+0

brialliant,非常感谢Raja !! – iamjonesy 2010-04-05 14:33:31

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

+0

感谢您的链接。我得到了事件驱动模型。问题是,当我点击一个提交按钮时,page_load会被我所喜欢或不喜欢的触发。目前我使用page_load时,通过一些javascript从ajax日历中选择日期。我只想在点击提交按钮时不触发page_load。我没有使用page_load做其他事情 – iamjonesy 2010-04-05 13:54:21

1

很难看到这是一个好主意。从您张贴的短片段看,您真正需要的是附加到您的文本框的验证控件。

+0

+1。男人,这很明显。为什么我没有看到? – David 2010-04-05 13:49:25

+0

我的表单有一个附加到文本框的日历控件。当从日历中选择一个日期时,一些javascript提交页面。当page_load被命中时,它会检查文本框是否为空。如果不是,则检查该日期是否已存在条目。所以我不确定验证控件可以在这里工作 – iamjonesy 2010-04-05 13:59:53

+0

@Jonesy您可以将验证程序附加到日历,或者您可以添加javacript以使日历填充文本框_before_提交页面。事实上,我怀疑你可以在这里使用javascript来完全跳过这个回发,只要你能做到这一点,这是一件好事。 – 2010-04-05 15:12:26

0

看看发布的项目。你应该在那里看到对那个按钮的某种引用。 IIRC,如果点击它,你会在那里看到某种参考,如果不是,它不会在那里。 我在前一段时间遇到了同样的问题,这就是我如何绕过加载一些东西。

+0

对不起,但我如何查看发布的项目? – iamjonesy 2010-04-05 14:24:07