【发布时间】:2015-08-03 01:37:20
【问题描述】:
我有一个带有模板列的gridview:
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:GridView ID="gridDay" runat="server" SkinID="gridviewSkinLight" AutoGenerateColumns="False" DataSourceID="DSAppointmentForDay">
<Columns>
<asp:BoundField DataField="TimeValue" HeaderText="" InsertVisible="False" ReadOnly="True" SortExpression="TimeValue" />
<asp:TemplateField HeaderText=" ">
<ItemStyle HorizontalAlign="Left" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gridDay" />
</Triggers>
</asp:UpdatePanel>
在 RowDataBound 上,如果找到符合条件的数据,我会在单元格中创建按钮:
Dim cmdNew As New Button
cmdNew.ID = "E" & dr("pkAppointment") & "|" & dr("ApptTopic")
AddHandler cmdNew.Click, AddressOf mySub
cmdNew.Text = dr("ApptTopic") & " >> " & dr("ApptLocation")
cmdNew.ToolTip = "Topic: " & dr("ApptTopic") & vbLf &
"Location: " & dr("ApptLocation")
e.Row.Cells(1).Controls.Add(cmdNew)
到这里为止,一切都很好。这些按钮是在右侧单元格中创建的,带有所有的花里胡哨。
按钮应该调用的例程是:
Private Sub mySub(sender As System.Object, e As System.EventArgs)
Try
Dim btn As Button = DirectCast(sender, Button)
MsgBox(btn.Text)
Catch ex As Exception
End Try
End Sub
点击按钮的那一刻,页面刷新,所有创建的按钮都消失了,mySub 也没有被调用。
我错过了什么吗?
【问题讨论】:
标签: vb.net button gridview dynamic addressof