我想在编辑gridview行时通过c#访问日历控件。但是,我不确定如何通过后面的 C# 访问它。
我想做以下事情:
cal_SelectionChanged(object sender, EventArgs e)
{
date = cal.SelectedDate
blah blah...
}
但是,由于控件位于 gridview 编辑模板中,因此与日历只是普通 asp.net 页面上的一个元素相比,我找不到将其访问到 C# 的方法。
谢谢
正如您似乎知道的那样,无法直接访问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...
}