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: のタイプControlstring key: JS スクリプトを識別するために使用されるキーstring script: JS スクリプト自体boolean addScriptTags: スクリプトを入れる<script></script>か入れないか
問題の本質は、別のものを指定できないことkeyです。各スクリプトを識別するためにミリ秒を使用しようとしましたが、スクリプトの方が高速であるため、同じ量のミリ秒を持っているようです (時間についてはこれ以上正確にはできません...)。
質問:パラメータに一意の識別子を使用するにはどうすればよいkeyですか? または、代替手段はありますか?