0

スクリプトを含むASP.Netページがあります:#

    var Show;    

    $(document).ready(function () {
        ...Set fooDialog to autoOpen=false
        ...Open the dialog on fooLink.Click
if(Show){
...Open the dialog
        }

動作は、ユーザーがページを開いたときに、このモーダルダイアログがデフォルトで非表示になることです。次に、fooLinkをクリックすると、それが開きます。グリッドに入るテキストを入力して閉じると、再び非表示になります。

ここで、ユーザーがグリッド内のその行で[編集]をクリックすると、そのダイアログに値が表示されます。

ユーザーが行の編集を選択すると、コードビハインドが呼び出されます。

protected void foo_RowEditing(object sender, GridViewEditEventArgs e)
{
...fill in the values in the dialog
...ClientScript.RegisterStartupScript(this.Page.GetType(), "webMethod", String.Format("<script>SetShowFooDialog()</script>"));
}

問題は、fooDialogueを開く関数が背後のコードによって呼び出され、次に$(document).ready(function()が呼び出されてオーバーライドされ、ダイアログが非表示に設定されることです。したがって、実際には、それをロードしてから非表示にします。クライアントでページをリロードしているため。

これを回避する方法はありますか?

4

1 に答える 1

0

ready(function ()... blnFlagDialog = false; の場合にのみダイアログを非表示にすると、グローバル JavaScript 変数になります。

この登録スクリプトステートメントを更新し、その後にフラグをリセットします

RegisterStartupScript(this.Page.GetType(), "webMethod", String.Format("<script>blnFlagDialog = ture;OpenFooDialog();blnFlagDialog = false;</script>"));
于 2012-04-17T11:10:57.863 に答える