从后面的代码调用javascript或在javascript中调用__dopostback

时间:2009-11-23 15:15:39

标签: c# asp.net javascript

我有一个button1_click()函数,它运行在页面加载,现在我想从javascript调用此函数,为此我需要在javascript中做dopostback,可以nyone告诉我该怎么做...因为你可以看到我的pageload函数button1_click()在回发上运行

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
     {
      int l = files.Length;
      Button1.Attributes.Add("onclick", " alertMe("+ l.ToString() +");");
      }
  Button1_Click();

}

我的javascript代码:

function alertMe(len) 
 {
if(len>3)
//do postback(post back will run Button1_click function)
 else
 alert('Hello');
 }

4 个答案:

答案 0 :(得分:1)

This is a helpful link

从文章: “ 从Javascript调用回发事件

在某些情况下,您可能希望使用某些客户端javascript显式回发到服务器。这样做非常简单。

ASP.NET已经创建了一个客户端javascript方法,如下所示,以支持Web控件的回发:

function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

答案 1 :(得分:0)

看起来您想使用ajax来调用此服务器方法。您可以使用ajax.net来执行此操作。显然,结果不会是回发。

查看here示例

答案 2 :(得分:0)

可能是这样的:

function alertMe(len) 
     {
    if(len>3)
    //do postback(post back will run Button1_click function)
alertMe(len);
     else
     alert('Hello');
     }

我总是尽量避免使用内联js

答案 3 :(得分:0)

一种方法是使用实​​际的asp:Button并使用OnClientClick事件......

<asp:Button id="myButton" runat="Server" OnClick="Button1_Click" OnClientClick="alertMe();" />

function alertMe()
{
   if (this.len>3)
   {
       return true;
   }
   else
   {
      return false;
   }
}

如果alertMe返回true,则返回服务器,如果返回false, 它不会。

这里有关于OnClientClick事件的更多详细信息link