我是编程新手。我正在创建一个程序,它动态地将一个UserControl添加到Gridview模板,我想将一个值从datatable传递给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()
我想将行添加到用户控件中的Numbering标签,这是在SESRatings.ascx上设置的IncrementNumber属性。 这是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并将其传递给User Control的IncrementNumber属性。我怎样才能做到这一点?请帮忙。感谢。
答案 0 :(得分:0)
您必须在gridview控件中使用Eval标记:
<ses:SESRatings runat="server" ID="ses1" IncrementNumber='<%# Eval("IncrementNumber") %>' />