2010-12-01 8 views
3

私は一連のコントロールをループしており、エンドユーザーが(JavaScriptを介してまたは直接的に)ポストバックされる値を変更する能力を持つコントロールを知る必要があります。そのようなリストはどこにありますか?コントロールまたはコントロールインターフェイスがユーザーによって編集可能かどうかを確認するにはどうすればよいですか?

は、これまでのところ、私はこれを持っている:

あなたが潜在的なサードパーティ製のコントロールを織り込む場合は特に、あなたが使用する必要がアプローチだが、コントロールの完全なリストを取得する方法はありません
Private Function IsEditableControl(ByVal control As Control) As Boolean 
    Return TypeOf control Is IEditableTextControl _ 
    OrElse TypeOf control Is ICheckBoxControl _ 
    OrElse GetType(ListControl).IsAssignableFrom(control.GetType()) _ 
    OrElse GetType(HiddenField).IsAssignableFrom(control.GetType()) 
End Function 

答えて

3

私はむしろ、 IPostBackDataHandlerを実装します。

Public Shared Function IsControlEditable(ByVal ctrl As Control) As Boolean 
    Return TypeOf ctrl Is IPostBackDataHandler 
End Function 

あなたは、クライアントがサーバーにポストバックされたフォームデータを調べるために設計したサーバーコントロールをしたい場合は」、あなたはIPostBackDataHandlerインターフェイスを実装する必要があります。このインタフェースが定義されていることを契約書には、にサーバーコントロールを可能にポスト・バックの結果として州を変更すべきかどうかを決定し、適切な出来事を提起する」と述べた。

これらは、それを実装するクラスです。

  • のCheckBox
  • CheckBoxListの
  • のDropDownList
  • HtmlInputCheckBox
  • HtmlInputFile
  • HtmlInputHidden
  • HtmlInputImage
  • HtmlInputRadioButton
  • HtmlInputText
  • HtmlSelect
  • HtmlTextArea
  • のImageButton
  • のListBox
  • RadioButtonListの
  • のTextBox

IPostBackDataHandlerを実装するためのチェックの大きな利点あなたの関数は将来(フレームワークに追加されるコントロールを使って)やサードパーティのコントロールのためにも機能するということです。

0

。基本的には、あなたが検討している他のコントロールをそのリストに追加してください...上の2つのインターフェイスは、コントロールの範囲を排除するためのかなり良いものです...

+0

明らかなものがありますか? – adam0101

関連する問題