0
我是编程新手。我正在创建一个将UserControl动态添加到Gridview模板的程序,我想将一个值从数据表传递给UserControl的一个属性。 GridView中的TemplateField已经预装了1个用户控件,如果我点击一个按钮,这将添加一个带有编号的新UserControl。将值从数据表传递给UserControl属性
以下是FormLoad事件页面中的代码。
Dim dtSESRatings As New DataTable
dtSESRatings.Columns.Add("IncrementNumber")
dtSESRatings.Rows.Add("1")
ViewState("dtSESRatings") = dtSESRatings
gvSesRating.DataSource = dtSESRatings
gvSesRating.DataBind()
我想该行添加到这是IncrementNumber属性设置SESRatings.ascx用户控件的编号标签。 这是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后,在点击一个按钮“添加新等级”,它应该是建立在GridView一个新的用户控件和代码是在这里:
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属性。我怎样才能做到这一点?请帮忙。谢谢。
我已经添加了评估和演示标签,但不幸的是,添加第二个用户控件后,编号1变成0所有的用户控件现在的编号0。 –