2

メインとサブカテゴリの 2 つの異なるデータソースに基づいてグリッドビューを作成する必要があります。そして、以下のようにリストする必要があります。

製品情報
   サブプロダクト 1
   サブプロダクト 2

製品情報
   サブプロダクト 1
   サブプロダクト 2
   サブプロダクト 3
   サブプロダクト 4

など...問題は、「productinfo」と「sub-product」の両方の数が変化する可能性があるため、動的であるため、グリッドビュー内にグリッドビューを作成し、必要なフィルターも作成する必要があることです。

このため、コード ビハインドですべてを実行するのが最善であると考えましたが、コード ビハインドで gridview-class を使用してバインドし、メインの aspx ページに実際に何かを表示する方法がわかりません。

基本的に私が求めているのは、aspx ページに <asp:GridView/> しかない場合に、コード ビハインド (vb) からコンポーネントを追加して表示できる方法の簡単な例です。

ありがとう。

4

4 に答える 4

2

vb コード:

Dim mydatatable As New DataTable
' Create columns
mydatatable.Columns.Add("field_a", Type.GetType("System.String"))
mydatatable.Columns.Add("field_b", Type.GetType("System.String"))
' Declare row
Dim myrow As DataRow
' create new row
myrow = mydatatable.NewRow
myrow("field_a") = "filed a row 1"
myrow("field_b") = "filed b row 1"
mydatatable.Rows.Add(myrow)

GridView1.datasource = mydatatable
gridview1.databind()

aspx コード:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" EmptyDataText="if im not at my desk im at the balcony contemplating suicide" >
<Columns></Columns>
</asp:GridView>
于 2009-08-18T13:17:03.727 に答える
0

うまくいけば、あなたはすでにこれを理解していますが、他の人の利益のために、ここに私が見つけたものがあります。

まず、ASP.NETは、データがない場合はグリッドビューをまったくレンダリングしません...迷惑ですが、何ができるでしょうか。(実際、あなたにできることがあるかもしれませんが、それが何であるかはわかりません!)。データテーブルに新しい行を追加すると、一歩近づきます。

次に、 gridviewではなくdatatableの列を指定しているAutoGenerateColumns="True"ので、gridviewが列を生成するときにテーブルから列名を取得するようにします。

于 2009-03-07T22:15:46.850 に答える
0

私はあなたの質問を理解しているかどうかわかりませんか?..しかし、グリッドをデータバインドしたいだけですか?

次のように、コード ビハインドでグリッドビューを適切に作成します。

Dim gw As GridView = New GridView()

または、ID と runat="server" を asp:GridView に追加して、コード ビハインドで使用できるようにする必要があります。

また、コンポーネントをグリッドビューに入れる必要がある場合は、汎用リストなどのデータソースをバインドする必要があります。

Dim list As List(Of String) = New List(Of String)
gw.DataSource = list
gw.DataBind()

あなたが示すようにメインとサブを並べたい場合は、2つのグリッドを使用しますか?

于 2009-02-09T11:44:47.133 に答える
0

同様の問題に直面したため、次の記事が非常に役に立ちました。

  1. ASP.NET の GridView がデータの有無にかかわらず表示されない
  2. DataTable を動的に作成し、ASP.Net で GridView にバインドします。

私が学んだことに基づいて、次の手順がうまくいきました。

  • Page_Loadコード ビハインドのイベント中に GridView を DataTable にバインドする
  • IsPostBack最初のページの読み込み時にのみバインドする場合は、プロパティを確認してください
  • GridView プロパティで、設定AutoGenerateColumns="True"
于 2015-08-28T19:23:31.937 に答える