2

回发时,我在 javascript 上遇到错误。代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>

    <script language="javascript" type="text/javascript">

function DoPostBack() 
{
    __doPostBack('Button2','My Argument');
}

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <input type="button" id="Button2" value="Press me" onclick="DoPostBack()" />
    </form>
</body>
</html>

我收到以下错误:

Line: 13
Error: Object expected

我不明白为什么会出现这个错误。请帮助...

4

3 回答 3

2

您可以使用隐藏按钮来执行此任务

Button1.Attributes.CssAttributes.Add("Display","None");

隐藏按钮后

你可以从javascript调用它的点击函数

document.getElementById('<%=Button1.ClientID%>').click();

这将在服务器上调用 Button1_Click

** 记得UseSubmitBehaviour=false在非 IE 浏览器上进行设置

希望有帮助:)

于 2010-10-29T07:23:35.273 回答
1

__doPostBack 默认不创建。如果页面没有导致回发的控件,则 ASP.NET 不会创建/生成此方法。在您的情况下,您可以通过在 Page_Load 事件中添加以下行来强制 ASP.NET 生成 __doPostBack:

ClientScript.GetPostBackEventReference(this, string.Empty);

此行将强制创建此方法。

于 2013-11-27T05:15:07.080 回答
-1

默认情况下不创建 _doPostBack。当您使用 autoPostBack=true 添加控件或添加一些带有按钮的网格时,它会出现。因此,您的代码中没有生成 _doPostBack javascript。如果你添加

<asp:DropDownList ID="list" runat="server" AutoPostBack="true">
        <asp:ListItem Text="first"></asp:ListItem>
        <asp:ListItem Text="second"></asp:ListItem>
    </asp:DropDownList>

例如,您的代码将起作用。不知道它是否真的有用的代码:) 但是。

于 2010-10-29T07:15:43.260 回答