2

次のコードに問題があります。ローカル マシンでは非常にうまく機能しますが、開発サーバーにデプロイするとまったく機能しません。私は多くの場所で解決策を探しましたが、うまくいきませんでした。

1 つの列がボタンフィールドであるグリッドビューがあります。このボタン フィールドは、選択した販売注文の詳細を表示するポップアップを開きます。

ポップアップを表示するには、次の文を使用します。

    private void OpenPopup(string name_)
    {
        Page.ClientScript.RegisterStartupScript(typeof(home), "Popup", string.Concat("<script type='text/javascript'>OpenPopup('", name_, "');</script>"));
    }

OpenPopup() は、単にポップアップを表示する JavaScript 関数です (テストしたところ正常に動作するため、不要なコードは表示しません)。

私のローカル環境で RegisterStartupScript を実行すると、問題なく動作し、ページ ソースの結果は次のようになります。

<script type='text/javascript'>OpenPopup('items');</script>

現在、サイトを公開してサーバーにデプロイすると、まったく機能しません。私はすでにScriptmanagerを使用して動作させようとしましたが、同じ結果になりました。ローカルでは機能しますが、サーバーでは機能しません。

追加されたスクリプトはまったく書かれていません。

どんな種類の助けも本当に感謝しています。私はすでに多くのアプローチで多くを検索しましたが、解決策はありません...

どうもありがとう。

/編集: ページで updatepanel を使用しません。

4

1 に答える 1

0

.RegisterClientScriptBlock を使用してみましたか? これは、分離コードで JS を呼び出すために常に使用するものです。

以下のコードのようなものを試していただけますか?

protected void btnSubmit_Click(object sender, EventArgs e)
{
    Boolean dne = false;
    StringBuilder errorMessage = new StringBuilder();
    String scriptName = "";



    if (AdminAccess.DoesUserExist(txtUsername.Text))
    {
        errorMessage.Append("alert('The selected username " + txtUsername.Text + " is already in use.  Please choose another. ');");
        scriptName = "duplicateUsername";
        if (!ClientScript.IsClientScriptBlockRegistered(scriptName))
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), scriptName, errorMessage.ToString(), true);
        }
        dne = true;
    }

}

于 2012-11-19T18:25:09.863 に答える