使用FindControl Devxpress ASPxScheduler访问控制

时间:2017-09-13 10:10:40

标签: c# asp.net devexpress scheduler

我在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。

1 个答案:

答案 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处理程序。

相关问题