0

私はプログラミングが初めてです。UserControl を Gridview テンプレートに動的に追加するプログラムを作成しており、データテーブルから UserControl のプロパティに値を渡したいと考えています。Gridview の TemplateField には既に 1 つのユーザー コントロールがプリロードされており、ボタンをクリックすると、番号付きの新しい UserControl が追加されます。

FormLoad イベントのページのコードを次に示します。

        Dim dtSESRatings As New DataTable

        dtSESRatings.Columns.Add("IncrementNumber")
        dtSESRatings.Rows.Add("1")
        ViewState("dtSESRatings") = dtSESRatings

        gvSesRating.DataSource = dtSESRatings
        gvSesRating.DataBind()

そして、SESRatings.ascx で設定された IncrementNumber プロパティであるユーザー コントロールの Numbering ラベルに行を追加したいと考えています。これはaspコードです:

<asp:GridView ID="gvSesRating" runat="server" Width="100%" ShowHeader="false" GridLines="None"
                                        AutoGenerateColumns="False">
                                        <Columns>
                                            <asp:TemplateField>
                                                <ItemTemplate>
                                                    <ses:SESRatings runat="server" ID="ses1" IncrementNumber="1" />
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                        </Columns>
                                    </asp:GridView>

FormLoad の後、「ADD NEW RATING」ボタンをクリックすると、グリッドビューに新しいユーザー コントロールが作成され、コードは次のようになります。

Protected Sub btnAddRating_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAddRating.Click
    Dim dt As DataTable = ViewState("dtSESRatings")
    Dim dtCnt As Integer = dt.Rows.Count
    dtCnt += 1
    dt.Rows.Add(dtCnt)
    ViewState("dtSESRatings") = dt

    gvSesRating.DataSource = dt
    gvSesRating.DataBind()

    dt = Nothing
End Sub

GridView に追加されるユーザー コントロールが dtCnt を取得し、それをユーザー コントロールの IncrementNumber プロパティに渡すようにします。どうやってやるの?助けてください。ありがとう。

4

1 に答える 1