0

无法找到有关这种情况的任何信息:

我在 RadGrid 中有两个 RadDatePicker用于更改开始和结束日期

<telerik:RadDatePicker ID="rdpStartDate" Skin="Library" EnableEmbeddedSkins="false" CommandName="StartDateChange" runat="server" />

就其本身而言,它们工作正常,但现在我有一种情况,当它们的值已更改时我需要调用方法(为此添加了 CommandName)

我知道如何在 RadGrid之外执行此操作,基本上:

Protected Sub rdpStartDateChanged(ByVal sender As Object, ByVal e As Telerik.Web.UI.Calendar.SelectedDateChangedEventArgs) Handles rdpStartDate.SelectedDateChanged
  ...
  ...
End Sub

但我无法在 RadGrid 中执行此操作,因为似乎没有任何东西触发它。

我试图用这个来捕捉我的命令(至少适用于按钮):

Protected Sub rgLibraryItemCommand(ByVal sender As Object, ByVal e As GridCommandEventArgs) Handles rgLibrary.ItemCommand

但是,不,它看不到CommandName="StartDateChange"

如果将 RadDatePicker 放置在 RadGrid 中,我需要做什么才能捕获这些日期更改事件?

4

2 回答 2

0

您需要识别网格内触发操作的控件。我不确定 Rad 采用哪种方式,但应该与此类似:

Private Sub DataGridView1_ButtonClick(sender As DataGridView, e As DataGridViewCellEventArgs) _
                                      Handles DataGridView1.CellButtonClick
    'TODO - Button Clicked - Execute Code Here

End Sub

因此,您需要为 Rad 找到 DataGridViewRow 的事件,并将它们替换为单元格单击事件。这个例子应该让你开始。

于 2017-05-31T18:50:45.520 回答
0

在 RadGrid 内的控件上订阅事件的工作方式不同,因为控件可能有多个副本,甚至根本没有,这取决于数据源中有多少记录。因此,为了订阅这些控件上的事件,您必须在绑定数据后手动完成,无论是在 ItemCreated 事件还是 ItemDataBound 事件中。

Protected Sub rgLibraryItemCreated(ByVal sender as Object, ByVal e As GridItemEventArgs) Handles rgLibrary.ItemCreated
    If TypeOf e.Item Is GridDataItem Then
        Dim item As GridDataItem = e.Item
        Dim rdpStartDate As RadDatePicker = item.FindControl("rdpStartDate")
        AddHandler rdpStartDate.SelectedDateChanged, AddressOf rdpStartDateChanged
    End If
End Sub
于 2021-08-23T13:15:21.190 回答