CheckBoxList を使用して、GridView に表示される列を定義しています。次のようなクエリを使用して CheckBoxList にデータを入力します
select column_name, data_type from information_schema.columns
where table_name = 'myTable'
ユーザーが表示する列 (さまざまなデータ型を含む) を選択した後、ボタンを押すと、次の VB コード スニペットによって GridView が生成されます。
For Each item As ListItem In chooseColsList.Items
If item.Selected Then
Dim bf As New BoundField()
'PRODUCES BUGGY RESULTS BECAUSE APPLIED TO ALL BoundFields
bf.DataFormatString = "{0:dd-MMM-yyyy}"
bf.ApplyFormatInEditMode = True
bf.DataField = item.Value
bf.HeaderText = item.Value
bf.SortExpression = item.Value
statusReportGrid.Columns.Add(bf)
End If
Next
私がやりたいことは、DataFormatString を「日付」データ型を持つ列にのみ適用することです。ただし、バインドされている列のデータのタイプをプログラムで決定する方法はなく、この情報をコントロールに渡す方法もありません。私のクエリに示されているように、この情報は information_schema に存在しますが、それを抽出してそれを使用して BoundFieldsを動的にセットアップする方法がわかりません。SqlDataSourceを使用していることに注意することが重要です。
私は、考えられるほぼすべての解決策を試して、ここにたどり着きました。
あなたの助けを前もってありがとう、それは非常に感謝しています:)