阻止回发vb和javascript

时间:2012-06-15 14:19:01

标签: c# javascript asp.net .net vb.net

这是一个回发问题(我不想使用客户端解决这个问题,必须有一种方法来防止postBack然后使用客户端),我点击它时有一个按钮它调用一个javascript函数来自后面的代码,但在它执行此操作之前它回发页面,问题是:我如何跳过帖子后退步骤并跳转到javascript部分?

<script type="text/javascript">
    function hello(name) {
        alert("hello world from javascript " + name)
        return false;
    }
</script>
 </head>
 <body>
<form id="form1" runat="server">
<div>
    <asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>

代码背后:

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    Dim Myname As String = "myName"
    Dim cstype As Type = Me.GetType()
    Page.ClientScript.RegisterStartupScript(cstype, "MyKey", "hello('" & Myname & "');", True)

End Sub

4 个答案:

答案 0 :(得分:3)

使用客户端处理程序而不是服务器端处理程序。删除Button1_Click并将您的js调用添加为OnClientClick属性值。

<asp:Button ID="Button1" runat="server" Text="Button" 
            OnClientClick="return hello('myName');" />

或者,根本不要使用服务器控件:

<button id="button1" onclick="return hello('myName');">Button</button>

答案 1 :(得分:1)

  1. 您应该在按钮点击事件之前在page_load或方法中注册此脚本。

    Button1.Attributes.Add(“onclick”,“return hello()”);

  2. 在调用hello方法之前使用return,在这里你可以像这样在

    中注册代码

    Page.ClientScript.RegisterStartupScript(cstype,“MyKey”,“return hello('”&amp; Myname&amp;“');”,True)

  3. 如果您不想回发,请从Button1_Click中删除所有语句。或取消绑定服务器端单击事件

    受保护的子Button1_Click(ByVal sender As Object,ByVal e As EventArgs)处理Button1.Click

  4. End Sub

答案 2 :(得分:1)

为什么不使用HTML按钮而不是ASP按钮

<input id="Button1" type="button" value="button" runat="server" />

服务器端写了类似

的内容
Button1.Attributes.Add("onclick","hello()");

答案 3 :(得分:1)

我认为您希望使用按钮的OnClientClick事件:

<asp:Button ID="Button1" OnClientClick="return hello('world')" runat="server" Text="Button" />