- - PR -
DataTableの設定をしなければなりません。
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-02-27 14:19
いつもお世話になっております。
C#.NETでWeb開発しております。 いろいろ調べたのですが、いまいち理解できなかったため質問させてください。 やりたいことは、DataGridのソートです。 private void Page_Load(省略)//編集しました。 { if(Request["search"]) { dataView1.Table = DataSet1.Tables["test"];// ←これで設定したつもりです。(追記) DataGrid1.DataSource = dataView1; DataGrid1.DataBind(); } } でグリッドは表示された状態です。 イベントは、 private void DataGrid1_SortCommand(省略) { dataView1.Sort = e.SortExpression;// ←エラー DataGrid1.DataBind(); } と記述しました。(MSDNそのまんま) 上記のコメントの部分でエラーになってしまいます。 内容は、件名通りです。 デバッグでみると、dataView1.Tableが<未定義の値>です。 まさしく、初歩のエラーです。 dataView1はWebコントロールで貼り付けただけです。 なにを設定、記述すればよろしいのでしょうか。 ご助言お願い致します。 [ メッセージ編集済み 編集者: BB.NK 編集日時 2004-02-27 15:49 ] | ||||
|
投稿日時: 2004-02-27 17:06
で、DataViewの方のMSDNページはご覧になりましたか?
dv = DataTable.DefaultView dv = New DataView(DataTable) #DataView.TableはReadOnlyだと思ったが? | ||||
|
投稿日時: 2004-02-27 17:14
NAL-6295です。
で、そのDataSet1は何処に保存されているのですか? 特に保存していないのであれば、ポストバックした時には残っていません。 ので、そのような結果になるでしょう。 #ちなみに、DataView.Tableは取得、設定、共に出来ます。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-02-27 17:15 ] | ||||
|
投稿日時: 2004-02-27 17:19
DataView.Tableプロパティですがヘルプをみると
「現在の値が null の場合は、 Table プロパティだけを設定できます。」 とのことです。ややこしい・・・ | ||||
|
投稿日時: 2004-02-27 17:47
つまり、、、
DataSetをどこかへ保存しておいて SortCommandイベントでDataSetからDataViewを作成するということでしょうか? それで、DataSetを保存するということは、、、。 また、レスします。 //以下追加です。 //因みに、省略していました private void Page_Load(省略) { if(Request["search"]) { //省略 OracleDataAdapter DA = new OracleDataAdapter(sql,cnn); DataSet DS = new DataSet("test"); DA.Fill(DS,"test"); //この前は省略していました。 dataView1.Table = DataSet1.Tables["test"]; DataGrid1.DataSource = dataView1; DataGrid1.DataBind(); } } [ メッセージ編集済み 編集者: BB.NK 編集日時 2004-02-27 18:10 ] | ||||
|
投稿日時: 2004-02-27 19:04
できました!(テンプレートはまだ手をつけていませんが。。。)
まず、DataSetをはじめに作った際にDataViewをつくっても意味がない。。。 ViewStateを使って、DataSetの内容を保存する。 次に、SortCommandイベントでViewStateからDataViewを作成。 の流れでできました。 ありがとうございました。 引き続き、テンプレートでもやってみます。(昇降も) 躓いたらお願い致します。
| ||||
|
投稿日時: 2004-02-27 20:41
できました。part2
列にはBoundColumnとTemplateが混じっているので、 DataGridのItemCommandイベントで全てソートさせるようにしました。
| ||||
1
