1

我想在编辑gridview行时通过c#访问日历控件。但是,我不确定如何通过后面的 C# 访问它。

我想做以下事情:

cal_SelectionChanged(object sender, EventArgs e)
{
date = cal.SelectedDate

blah blah...
}

但是,由于控件位于 gridview 编辑模板中,因此与日历只是普通 asp.net 页面上的一个元素相比,我找不到将其访问到 C# 的方法。

谢谢

4

1 回答 1

1

正如您似乎知道的那样,无法直接访问Template基于控件(例如<asp:Repeaters>)中的控件,就像您将控件直接放置在页面/用户控件/母版页中一样。可以使用控件中特定项目上的“FindControl”找到它,但应该有更简单的方法......

在这种情况下,您应该能够将SelectionChanged日历控件上的事件处理程序设置为代码隐藏中的函数。(这是假设您使用的是内置日历控件)类似...

<asp:Calendar runat="server" OnSelectionChanged="cal_SelectionChanged"> ... </asp:Calendar>

当调用诸如此类的事件时,导致事件的对象(在本例中为日历控件)通过sender参数传递给函数。

这意味着您无需尝试确定单击了哪个日历,而只需执行此操作...

cal_SelectionChanged(object sender, EventArgs e)
{
  Calendar cal = (Calendar)sender;
  date = cal.SelectedDate;
  blah blah...
}
于 2012-07-31T16:37:09.300 回答