0

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

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

for(int i = 0; i < 3; i++)
{
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "alert", "alert('Hello World');", true);
}

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

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

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

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

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

4

0 に答える 0