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');
}

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

2 に答える 2

1

__doPostBack 呼び出しを使用する場合は、クライアント ID ではなく、サーバー コントロール ID を EventTarget として渡す必要があると思います。__doPostBack 呼び出しを次のように変更してみてください...

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

デフォルトでは、コントロールは __doPostBack を使用してサーバーへのポストバックを行います。__doPostBack は、コントロールの UniqueID (または HTML では、HTML 要素の name プロパティ) を取ります。2 番目のパラメーターは、起動するコマンドの名前です。

于 2012-06-19T10:34:56.217 に答える
0

onclickイベントハンドラーは、href属性で指定されたものに移動するために、リンクのデフォルトの動作を抑制する必要があります。

次のようになります。

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

必要に応じて、SetPosition()でリダイレクトを提供できます。

于 2012-06-19T10:49:05.417 に答える