2016-04-22 12 views
0

アイテムが変更されたときにポップアップするメッセージボックスを取得しようとしているddlに問題が発生しました。あなたはここに>>> How to Popup Alert() from asp:DropDownList OnSelectedIndexChanged?ddl 'onchange'イベントがintellisenseに表示されないのはなぜですか?

作業答えはonchangeイベントを使用するために私を示したが、その後、私は、このイベントは、インテリセンスのドロップダウンリストには表示されませんVS2010で働いていることについて読むことができます。しかし、とにかく入力すればうまく動作します。

答えて

0

これは、どのように動作するかを理解する必要があります。入力要素の値を変更すると、ブラウザでonchangeイベントがトリガーされるため、ブラウザはその処理方法を探します。したがって、要素に指定されたonchangeイベントを呼び出すと、呼び出されます。

今、ASP.NET OnSelectedIndexChangedは、同じ機能を使用して(論理的に言って)、ページをサーバーにPOSTします。そこから、ASP.NETランタイムはコードビハインドファイルに書き込んだ関数をトリガし、結果を返します。サーバー上でしか実行できない操作を本当に必要としない場合は、サーバー機能を使用する必要はありません。代わりにjavascriptで行うことができます。

一方、サーバー上で何か起こるようなものがある場合、データベースが取得するように、OnSelectedIndexChangedイベントを使用することになっています。

OnSelectedIndexChangedイベントを使用しても、そこからいくつかのjavascript関数を呼び出すことができます。

Page.ClientScript.RegisterClientScriptBlock(typeof(string),"myScript","alert('HI')",true); 

onchangeinput種類のイベントであり、かつASPXページに、私はあなたが同じイベントを持っていない<asp:..>タグを使用していると思います、インテリセンスについてのあなたの質問に答えるために - ので、Visual Studioは、それが表示されませんインテリセンスで。しかし、それを置くと、ブラウザによって正しく解釈されるHTMLマークアップに割り当てられます。

賛否両論ブラウザ上

onchange作品なので、サーバー側のコードよりもはるかに高速です。一方、ブラウザにはポップアップを制限する機能が備わっていました。したがって、本当に重要なメッセージを表示したい場合は、Server-SideイベントとRegisterClientScriptBlock関数を使用する方がよいでしょう。

希望します。

関連する問題