2010-11-19 4 views
1
  • 私はグリッドビューを持っています。
  • Gridviewは更新パネルにあります。
  • グリッドビューのテンプレート列にドロップダウンリストを追加しました。
  • 私はautopostbackをtrueに設定しました。
  • 私は今、私はそれがポップアップしているドロップダウン のクライアント側の変更のjavascriptの確認プロンプトを追加したいことのすべてが素晴らしい

    クライアント側の確認ボックスをトリガーする更新パネルのドロップダウンリスト

    を作品のSelectedIndexChangedイベント

で動作するコードを持っていますボックスを確認していないが、関係なく、それは

<asp:DropDownList ID="ddlWinnerStatus" runat="server" CssClass="winStatusDDL" OnChange="return ShowWarning(this);"AutoPostBack="true" OnSelectedIndexChanged="ddlWinnerStatus_OnSelectedIndexChanged"></asp:DropDownList> 
+0

ShowWarning()関数を投稿できますか? –

+0

...とUpdatePanelのマークアップ。 ChildrenAsTriggers = "true"ですか? –

+0

... OnSelectedIndexChangedイベントコード? – jwiscarson

答えて

1

最初にポストバックしないものをユーザが選択(OKまたはキャンセル)、DropDownListクラスがOnChangeプロパティを公開しませんので、私はあなたのような何かをやっていると思います:

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    ddlWinnerStatus.Attributes.Add("onchange", "return ShowWarning(this);"); 
} 

さて、問題のようなものを与える既存のonchange属性、への、ドロップダウンリスト、フードの下連結しポストバック呼び出しですAutoPostBacktrueがそうwindow.setTimeout()への追加の呼び出しが挿入されているが、それはそれの要点だ、とあなたは常に復帰しているので、あなたは__doPostBack()が呼び出されることは決してありませんことを見ることができるので、実際にはもっと複雑だ

<select onchange="return ShowWarning(this); __doPostBack(...);"> 

ハンドラから早期に取得できます。 (あなたがしなければということは、AutoPostBackプロパティが冗長になるという

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    ddlWinnerStatus.Attributes.Add("onchange", 
     String.Format(CultureInfo.InvariantCulture, 
      "if (ShowWarning(this)) {{ {0}; return true; }} else return false;", 
      ClientScript.GetPostBackEventReference(ddlWinnerStatus, ""))); 
} 

注:

__doPostBack()への適切なコールを生成する GetPostBackEventReference()を使用して、あなたはすべての作業を自分で行う必要があります、あなたが望むものを達成するために、効果的に無視されます)。

関連する問題