- PR -

【asp.net】ページ表示完了後のdatagridの参照

1
投稿者投稿内容
b.s.n
常連さん
会議室デビュー日: 2002/10/18
投稿数: 28
投稿日時: 2002-12-16 19:51
いつも参考にさせて頂いています。
毎度毎度、datagrid関連の質問、議題で申し訳ないのですが、

現在、asp.net(vb.net使用)にてページ表示完了後にdatagridの値が参照できなくなる現象に
困り果てています。
実際、ほかのスレッドにて自分で回答なども出していながら間抜けた話ですが、
現象としてなにかご存じの方、ご返信を頂きたく思います。


【手順】
・webform1にdatagridを何も連結しない形で用意します。
(実際には、テーブルタグ内の1セルに放り込んでいたのですが、
現在は、ページのform内に直接張り付けています。)

【現状】
・page_load時に、dataview、datatableを利用して、必要数分の列をviewのフィルタにて
動的に作成し、datagridに流し込みます。

Dim DispViewP As New DataView(DtGidTBL)
DispViewP.RowFilter = "KBN = 'P'"
DataGridP.DataSource = DispViewP
DataGridP.DataBind()

このとき、databindメソッドにて流し元のdatatableの関数bindDataを起動し、
中で、

Public Sub BindData(ByVal sender As Object, ByVal e As EventArgs)
Dim lbl As Label = CType(sender, Label)
Dim container As DataGridItem = CType(lbl.NamingContainer, DataGridItem)
lbl.Text=Trim((CType(container.DataItem,DataRowView))(column).ToString())
End Sub

のようにして、コントロールidを確実に個別のidで指定し、値を代入しています。

その後(その前にもあるのですが・・)、色々と複雑な手順で列情報を設定したりしていますが
datagridを破棄したりする動作は行っていません。

【現象】
この状態にてページが生成され表示完了すると、その後、どのボタンを押下した際にも
datagridの行列は、存在していない状態になります。(ide的には、datagridは生きています。)

【備考】
なお、表示されたhtmlには通常通りのdatagridが挿入されていて問題は
ないように感じるのですが、やはり、何らかのメソッドで飛んできた際には、
datagridの中身は、行列ともに取得できません。
datarowなどを利用して生成した列は、破棄されることがあるとどこかで読んだことが
あるのですが、それがどこだったのかも解らず、結局、先に進めない状態です。

どなたか、この現象の理由、もしくは関連情報、回避策、代案策などありましたら
ご教授いただきたく思います。

なにとぞ、よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)