2009-06-08 13 views
0

ASP.NETページに1つのAsp.netボタンコントロールと通常のHTMLリンク(アンカータグ)があります。asp.netのpostbacklイベントを呼び出したい誰かがリンクをクリックしたときのボタンコントロール。ASP.NETがASP.NETボタンを呼び出すJavaScriptのサーバーイベント

私は以下のコード

<a href="javascript:myFunction();" class="checkout" ></a> 
<asp:Button ID="btnCheckout" runat="server" Visible="false" 
onclick="btnCheckout_Click" /> 

を使用して、私のjavascriptの中で、私は

function myFunction() 
    { 
     var strname; 
     strname = "Test"; 

     __doPostBack('btnCheckout','OnClick'); 
    } 

を持っている。しかしgthisをのrunninとき、私は__doPostBackのようなエラーを取得していますが、未定義である

は、任意の1缶それがなぜなのか教えてください。

ありがとうございます。

答えて

1

これはとにかくうまくいきませんでした。 Visible = "false"を使用して.NETコントロールを非表示にすると、レンダリングされません。つまり、クライアントでは使用できません。

に戻る 1- myFunctionはどこに定義されていますか?タグの間? 2ページに.NETコントロールが追加されていますか?他の.NETコントロールがない場合、.NETはポストバックやものに必要なすべてのスクリプトを追加しません。あなたが偽のボタンを必要とし、それがinvisbleことはありません上記の例では

<asp:LinkButton ID="lbtnCheckout" runat="server" CausesValidation="false" OnClick="lbtnCheckout_Click" CssClass="checkout" /> 

:(TheVillageIdiotの回答に基づいて)次の操作を実行しないのはなぜ

。あなたはまだあなたのポストバックを行うことができます。より洗練されたアプローチを私は言うだろう。

0

私はあなたのコードを試してみましたが、また__doPostBackのようなものを得ることはありませまず第一に、私は目に見えたが、それはすべて同じであったページ上の別のボタンを追加しました。その後、LinkBut​​tonを追加し、__doPostBackメソッドを取得しました。あなたはjavascriptからポストバックをすることができますが、EventValidationはこの種のことを許さないので問題です。私はそれを克服するために、次を使用していた、それが働いた:

protected override void Render(HtmlTextWriter writer) 
    { 
     ClientScript.RegisterForEventValidation(
        new PostBackOptions(btnCheckout, "OnClick")); 
     base.Render(writer); 
    } 

私はので、私はウィキとしてそれをマークします答えに少し支離滅裂だと思う:)

関連する問題