問題タブ [registerstartupscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2094 参照

javascript - ユーザーコントロールにスクリプトを登録する

私が取り組んでいるasp.net webformsアプリケーションがあります。メインの aspx ページを使用してレイアウトを作成し、パネル内の ascx ページを使用してデータを表示します。

私がする必要があるのは、ユーザー コントロール (ascx ファイル) で JavaScript を使用することです。

メインの aspx ページにスクリプト マネージャーがあれば、.ascx ページの Page_Load 関数にスクリプトを登録できると思いました。

これが私がやろうとしていることの基本的な例です:

ascx ページの HTML は次のとおりです。

メインの aspx ページでのスクリプト マネージャーの宣言は次のとおりです。

また、ページの読み込み時に表示される簡単なアラートを作成しようとしましたが、スクリプトを実行できません。ボタンを押すと、「ReferenceError: logSomething is not defined」が表示されます

どんな助けでも大歓迎です。

キックのために、私はこの方法も無駄にしようとしました:

ボタン HTML:

これにより、メインの aspx ページへの投稿が行われました。コンソールには何も記録されませんでした。可能であれば、ASP コントロールから離れたいと思います。最終的な目標は、jQuery をこのアプリケーションに統合することです。

0 投票する
1 に答える
407 参照

javascript - RegisterStartupScript が JScript メソッドを起動しない

コード ビハインドから JavaScript 関数を起動する方法がわかりません。

これが私のaspxページの私のjavascriptです...

LinkBut​​tonShowPopupのイベントに対して発生する同様の関数が呼び出されます。OnClientClickそれは働いています。ただし、このボタンを押して開始される関数の最後で、JQuery ダイアログを非表示にしたいと考えています。私は次の方法を試しました...

最初のボタンが必要だと思います (私は AjaxControlToolkit とこの特定のボタンを使用して<div>おり、更新パネルにあります) が、どちらもダイアログ ボックスを隠していないようです。エラーが発生しないので、ここでちょっと迷っています。何か案は?さらに情報が必要ですか? 前もって感謝します。

編集:だから私の問題は実際にはjavascriptが起動していないということではありません.私alert(message)は自分のHidePopup()関数にオフになっているので、私の問題は本当にこの行にあるようです...

divは次のように定義されています...

誰かがそれで何か問題があると思いますか?

0 投票する
1 に答える
655 参照

javascript - コード ビハインドから JavaScript 関数に非常に長い文字列を渡すにはどうすればよいですか?

コード ビハインドから .aspx ファイルの JavaScript 関数に文字列を渡そうとしています。「bla」などの短いダミー文字列を渡すと、これはうまく機能します。しかし、完全な例外メッセージ + スタック トレースを渡すと、プログラムがハングし、JavaScript 関数に入りません。

これを達成しようとしている方法は次のとおりです。

私のサーバー側には、LogMessagePopup JavaScript 関数があります。

JavaScript 関数の内容は問いません。

おそらく問題は、logMessage が非常に長いことです。これは、4KB を超える完全な例外およびスタック トレースです。

短いメッセージを渡すと、コードは正常に動作します。

特殊文字にも問題がある可能性がありますが、logMessage.replace を使用して JavaScript の特殊文字をエスケープした後も問題は解決しません。

サーバー側のコードに POST 経由で長い文字列を渡すことができると読んでいますが、これが私が探している解決策でさえある場合、方法がわからないため、これを行う方法がわかりません具体的には、JavaScript LogMessagePopup 関数に渡します。弦は途中でどこかで失われます。

0 投票する
0 に答える
75 参照

javascript - 警告が数回ではなく 1 回表示される ScriptManager asp.NET

alert('mytext');throughを使用すると問題が発生しますScriptManager.RegisterStartupScript()

問題は、たとえば次のようにループで使用する場合です。

アラートは 3 回ではなく 1 回表示されます。

正確には、この関数は次の 5 つのパラメーターを取ります。

  • Control control: ページの制御
  • Type typeOfControl: のタイプControl
  • string key: JS スクリプトを識別するために使用されるキー
  • string script: JS スクリプト自体
  • boolean addScriptTags: スクリプトを入れる<script></script>か入れないか

問題の本質は、別のものを指定できないことkeyです。各スクリプトを識別するためにミリ秒を使用しようとしましたが、スクリプトの方が高速であるため、同じ量のミリ秒を持っているようです (時間についてはこれ以上正確にはできません...)。

質問:パラメータに一意の識別子を使用するにはどうすればよいkeyですか? または、代替手段はありますか?

0 投票する
1 に答える
654 参照

asp.net - RegisterStartupScript が UpdatePanel および Google Visualization チャートで機能しない

私の ASP.NET ページでは、asp:UpdatePanel 内で Google ビジュアライゼーション チャートを使用しています。ユーザーが 2 つの asp:DropDownLists から見たいグラフを選択すると、C# コードが JavaScript を生成し、ScriptManager.RegisterStartipScript(...) を呼び出します。ページが最初に読み込まれると、最初のデフォルト チャート (つまり、RegisterStartupScript への最初の呼び出し) が機能し、View Source から JavaScript を表示できます。空白のグラフが表示されるのはポストバックのみであり、[ソースの表示] に移動すると、ページは新しい JavaScript を受信せず、最初のページの読み込みから古いデフォルトの JavaScript が残っています。これが奇妙な動作です。まったく同じコードを使用し、Google Chart コードを alert(...); に置き換えた場合。その後、毎回 alert() が発生し、ソースを表示するとスクリプトが表示されます。私'ここに。以下は私のコードであり、助けていただければ幸いです。他の人にこれを見てもらい、私たちは皆困惑しています。参考までに: すべての UpdatePanels と関連項目 (ScriptManager と UpdateProgress) を削除して ClientScript.RegisterStartupScript() を使用すると、すべてが正常に機能し、ページに新しい JavaScript コードが表示され、新しいチャートが正常に表示されます。

私の C# コードは次のようになります。関数 DisplayPlot は 2 つの DropDownList イベントから呼び出され、各リストは「コントロール」として渡されます。

0 投票する
1 に答える
38 参照

c# - クエリ文字列パラメーターを Web アプリケーション メソッドに追加した後に失敗する

関数 ClientScript.RegisterStartupScript を使用して、コード ビハインドとは別のフレームでハイパーリンクを開く次のコードがあります。ハイパーリンクは事前にデータベースから取得され、ラベルに割り当てられています。

これは完璧に機能します。次に、そのページにクエリ文字列を実装しました。リクエスト パラメータが正しく渡され、期待どおりにハイパーリンクがページロードで開かれます。ただし、次にこのメソッドが呼び出されると、開かれるハイパーリンクは、Querystring パラメータで指定されたレコードに属するものになります。正しいパラメーター「s」が ClientScript.RegisterStartupScript() に渡されているかどうかを確認するためにラベルを内部に配置しました。

ページがクエリ文字列パラメーター (eg.aspx?ID=324) で読み込まれた場合、その関数で間違いが発生します。そのパラメーターなしで同じページを読み込むと、完全に機能します。

何が起こるのですか?入力パラメーターが変更されているにもかかわらず、ClientScript.RegisterStartupScript が古い結果を返すのはなぜですか?

それに関するヒントはありますか?マーティン