我在ASPxScheduler VerticalAppointmentTemplate中有一个超链接。我想在后面的运行时代码中访问相同的内容。
我的Aspx代码如下:
<dxwschs:ASPxScheduler ID="CalendarView" runat="server" Width="100%" ActiveViewType="Day">
<ResourceNavigator EnableIncreaseDecrease="false" />
<Views>
<DayView ResourcesPerPage="1">
<WorkTime Start="08:00:00" End="17:00:00" />
<Templates>
<VerticalAppointmentTemplate>
<asp:HyperLink ID="CalendarViewLink" runat="server" Text="View"></asp:HyperLink>
</VerticalAppointmentTemplate>
</Templates>
</DayView>
</Views>
<OptionsBehavior ShowViewSelector="false" />
<Storage EnableReminders="false" />
</dxwschs:ASPxScheduler>
我尝试过使用各种方法,比如
ASPxHyperLink calendarViewLink = (ASPxHyperLink)CalendarView.FindControl("CalendarViewLink");//Method 1
ASPxHyperLink calendarViewLink = (ASPxHyperLink)Page.FindControl("CalendarViewLink");//Method 2
ASPxHyperLink calendarViewLink = (ASPxHyperLink)updatepanelid1.FindControl("CalendarViewLink");//Method 3
也尝试使用相同链接的渲染ID。
ASPxHyperLink calendarViewLink = (ASPxHyperLink)CalendarView.FindControl("ctl00_ContentPlaceHolder1_ContentControl_CalendarView_aptsBlock_AptTemplateContainer700_CalendarViewLink");
请帮我找出控件。我必须在运行时绑定NavigateUrl。
答案 0 :(得分:1)
您是否尝试在DataBind
的{{1}}事件期间绑定链接?
我确定必须有一种方法可以使用ASPxScheduler
方法获取对您的链接的引用,但是您将遍历整个控件层次结构(FindControl
)以获取父级控件包含您的实际链接(我猜它必须是ASPxScheduler->Views->DayView
引用,您可以将其称为DayView
。)
但是,还有另一种方法可以实现您的需求,我建议您进行调查。只需为实际链接本身定义FindControl
处理程序:
OnInit
然后在代码隐藏中,您可以使用<asp:HyperLink ID="CalendarViewLink" runat="server" OnInit="OnViewLinkInit" Text="View" />
参数设置链接的NavigateUrl
:
s
将会多次调用上面的OnInit处理程序。