__doPostBack无法使用chrome和safari

时间:2012-06-19 10:29:31

标签: c# javascript asp.net google-chrome

__ doPostBack()函数适用于FF和IE,但不适用于safari和chrome。 我的asp.net c#application

中有以下代码

ASPX代码


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

JS功能


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

CS代码


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";
            }
}

2 个答案:

答案 0 :(得分: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属性)。第二个参数是要触发的命令的名称。

答案 1 :(得分:0)

onclick事件处理程序需要使用链接默认行为来导航到href属性中指定的内容。

应该是这样的:

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

如果需要,您可以在SetPosition()中提供重定向。