我有一个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');
}
答案 0 :(得分:1)
从文章: “ 从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。