- - PR -
納品用マシンでDataGridが上手く動かない[ASP.NET]
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-26 13:26
alfです。
いつも参考にさせて頂いています。 現在製作中のWebアプリを納品用マシン(本来なら2003Serverだが暫定でXp)上で現状 での動きを確認するため次のような手順で手動インストールを行いました。 1.IISをインストール(フルオプション) 2. NET Framework再配布パッケージ1.0aをインストール 3.wwwrootフォルダ配下にプロジェクトフォルダごとコピー 4.管理ツールからIISを起動し、アプリケーションの配置を行う 初回起動直後にPage_Load()内から次の関数InitDataGrid()を呼んでいるのですが、 DataGridにDataTableをバインドさせるのが良くないのか、次のエラーメッセージが 出てしまいます。 『無効なデータソースが'CaseNum_DataGrid'に対して使用されています。 有効なデータソースはIListSourceまたはIEnumerableを実装しなければ なりません。』 以下にエラーが出ていると思われるソースを記します。 CaseNum_DataGrid・・・DataGridのID 1列目:チェックボックス 2列目:データバインド(データフィールド:ID) 実行するとWebフォーム上に(ヘッダーを除く)4×2のDataGridが生成されます private void InitDataGrid() { // 書類ケース番号選択DataGrid m_dtCaseNum = new DataTable(); m_dtCaseNum.Columns.Add(new DataColumn("ID", typeof(INT))); for(UINT nIndex = 0;nIndex < 4;nIndex ++){ // 行数分繰り返す DataRow dr = m_dtCaseNum.NewRow(); dr["ID"] = nIndex; m_dtCaseNum.Rows.Add(dr); } CaseNum_DataGrid.DataSource = m_dtCaseNum; ←この辺りでエラー発生 CaseNum_DataGrid.DataBind(); ・・・ } 当然、開発環境上では問題なく動きます。 Webアプリを非開発環境上で動かすにあたって、Windowsアプリみたいにマージモジ ュールは必要ないと思いますが、 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5037&forum=7&6 の過去記事のように、エラーメッセージから察するにDataGridの使い方が間違って いるのでしょうか?(だとしたら何故開発環境上では問題なく動く???) 以上、よろしくお願います。【開発環境】C# + ASP.NET[.NET 2003(+SP1)] | ||||
|
投稿日時: 2005-12-26 14:19
> 【開発環境】C# + ASP.NET[.NET 2003(+SP1)]
VS.NET2003のこと? そうなら、実行環境に.NET Framework1.1をインストールするべきでしょう。 | ||||
|
投稿日時: 2005-12-26 15:57
alfです。
todoさん、毎度迅速なレスポンス有難うございます。 すみません、SDKのバージョンと間違えていました。 納品用PCにインストールされている.NET Framework再配布パッケージのバージョン は1.1(+SP1)です。 | ||||
|
投稿日時: 2005-12-26 16:55
うーん、DataTable は、IListSource を実装しているハズなんですけどね...
Framework のバージョンさえ一致していれば、
にはならないと思うんですが... (^-^?) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-12-26 17:20
私の開発環境でもalfさんのサンプルコードで
正しく動作する事を確認しました。 が、MSDNライブラリのDataSourceプロパティの解説にある使用例では DataTableをわざわざDataViewに置き換えてからDataSourceに設定しているようです。 ためしに、下記のように修正してみてはいかがでしょう? DataView dv = new DataView(m_dtCaseNum); CaseNum_DataGrid.DataSource = dv; CaseNum_DataGrid.DataBind(); | ||||
|
投稿日時: 2005-12-27 10:38
alfです。
じゃんぬねっとさん、無記入さん、レスポンス有難うございます。 プログラム的には何ら問題がないということで問題が切り分けられたので色々 環境を見直したのですがどういうわけか、IISマッピングを修復したら今までの トラブルが嘘のように動きました。 う〜ん、冒頭にも記したクリーンなOS環境に対しての初期導入手順(IIS→.NET Framework)は間違ってないと思うんですが... 何はともあれ、これで客先のデモに間に合いそうです。 色々とお騒がせしました。 |
1