Quantcast
Channel: わんくま同盟
Viewing all articles
Browse latest Browse all 994

ドメインユーザの画面への表示(Webアプリ)

$
0
0

Web フォームにユーザの一覧と選択したユーザの情報を表示します。(クリックすると新しいウィンドウで拡大図が表示されます。)

UserListWeb

データバインドには ObjectDataSource を使ってます。(DomainUser クラスをビジネスオブジェクトとする ObjectDataSource を 3つ)

※DomainUser クラスの詳細はこちら(VB版 C#版

一覧及び所属するグループは Windows アプリと同じく ListBox を使ってます。

詳細の方は FormView を使ってます。所属するグループは FormView 内に配置してます。

 

デザイナで次の設定をしてます。

・一覧 ListBox 用の ObjectDataSource に SELECT 操作として GetUsers メソッドを選択

・一覧 ListBox の AutoPostBack を有効にする

・一覧 ListBox のデータソースに上記 ObjectDataSource を選択

・表示データ フィールドは「DisplayName」を選択、値データ フィールドは「Name」を選択

・FormView 用の ObjectDataSource に SELECT 操作として FindByName メソッドを選択

・パラメーター ソースは「Control」を選択し、ControlID は一覧 ListBox の ID を選択

・FormView のデータソースに上記 ObjectDataSource を選択

・詳細の各表示用コントロールの DataBindings のプロパティ(Text や Checked)に 上記データソースの対応するプロパティを指定

・所属するグループ ListBox 用の ObjectDataSource に SELECT 操作として GetBelongGroups メソッドを選択

・パラメーター ソースは「Control」を選択し、ControlID は一覧 ListBox の ID を選択

・所属するグループ ListBox のデータソースに上記 ObjectDataSource を選択

・FormView を囲う UpdatePanel の AsyncPostBackTrigger に 一覧 ListBox の SelectedIndexChanged を指定

 

コードで次の処理をしてます。

・一覧 ListBox 用 ObjectDataSource の SELECT 操作完了時(Selected イベント)に、取得したユーザの数を表示

・FormView 用と所属するグループ ListBox 用の ObjectDataSource の SELECT 操作前(Selecting イベント)に、ユーザが未選択ならイベントをキャンセル

 

取得したユーザの数は、イベントデータ(ObjectDataSourceStatusEventArgs)の ReturnValue プロパティを ICollection にキャストしてその Count プロパティで取得してます。

Web フォームの場合は Windows フォームと違って、選択したユーザのオブジェクト(DomainUser クラスのインスタンス)は再度取得する必要があります。

 

今はユーザを表示するだけなのでフォーム側に書くコードは数行です。


Viewing all articles
Browse latest Browse all 994

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>