0

__doPostBack() 函数在 FF 和 IE 中有效,但在 safari 和 chrome 中无效。我的 asp.net c# 应用程序中有以下代码

ASPX 代码


<a href="www.myAddress.com/abcdef.html" onclick="javascript:SetPosition(); ">Click here</a>

JS函数


function SetPosition() {
        __doPostBack('ahref', 'link');
}

客户服务代码


protected void Page_Load(object sender, EventArgs e)
{
            if (!IsPostBack)
            {
                // Other code is here
            }
            else if (Request.Params["__EVENTARGUMENT"] != null && Convert.ToString(Request.Params["__EVENTARGUMENT"]).Trim() == "link")
            {
                Session["TopPossition"] = "9999";
            }
}
4

2 回答 2

1

我相信当您使用 __doPostBack 调用时,您需要将服务器控件 ID 作为 EventTarget 而不是客户端 ID 传递。尝试更改 __doPostBack 调用...

<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="__doPostBack('someuniqueid', '');">val</a>

默认情况下,控件使用 __doPostBack 回发到服务器。__doPostBack 获取控件的 UniqueID(或在 HTML 中,HTML 元素的 name 属性)。第二个参数是要触发的命令的名称。

于 2012-06-19T10:34:56.217 回答
0

The onclick event handler needs to supress the links default behavior to navigate to what's specified in the href attribute.

It should be like this:

<a href="#" onclick="SetPosition(); return false " >Click here</a>

you can provide redirection in SetPosition() if required.

于 2012-06-19T10:49:05.417 回答