我想在编辑gridview行时通过c#访问日历控件。但是,我不确定如何通过C#后面访问它。
我想做以下事情:
cal_SelectionChanged(object sender, EventArgs e)
{
date = cal.SelectedDate
blah blah...
}
但是,由于控件位于gridview编辑模板中,因此我无法找到一种方法来访问C#,相比之下,日历只是普通asp.net页面上的一个元素。
由于
答案 0 :(得分:1)
您似乎意识到,基于Template
的控件(例如<asp:Repeaters>
)中的控件无法直接访问,就像您直接将控件置于页面/ usercontrol /母版页中一样。可以使用控件中特定项目的“FindControl”找到它,但应该有一个更简单的方法......
在这种情况下,您应该能够在日历控件上将SelectionChanged
事件处理程序设置为代码隐藏中的函数。 (这假设你使用内置的Calendar control)类似于......
<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...
}