私はプログラミングが初めてです。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 プロパティに渡すようにします。どうやってやるの?助けてください。ありがとう。