2017-09-13 8 views
0

私はASPxScheduler VerticalAppointmentTemplateにハイパーリンクを持っています。私はランタイムコードの中で同じものにアクセスしたい。FindControlを使用したDevxpress ASPxSchedulerアクセス​​コントロール

マイ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> 

Iは

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

ASPxSchedulerDataBindイベント中にリンクをバインドしようとしていますか? メソッドを使用してリンクへの参照を取得する方法が必要ですが、実際のリンクを含む親コントロールに移動するには、コントロールの階層全体(ASPxScheduler->Views->DayView)をトラバースする必要があります(おそらく、 FindControlと呼ばれるDayViewの参照でなければなりません)。

しかし、調査することをお勧めする必要なものを達成するための別の方法があります。上記のOnInitハンドラが何回も呼び出されます

protected void OnViewLinkInit(object sender, EventArgs e) 
{ 
    HyperLink link = (HyperLink)sender; 
    link.NavigateUrl = "url"; 
} 

<asp:HyperLink ID="CalendarViewLink" runat="server" OnInit="OnViewLinkInit" Text="View" /> 

はその後、分離コードであなたがsパラメータを使用して、あなたのリンクのためのNavigateUrlを設定することができます。ただ、実際のリンク自体のOnInitハンドラを定義多くのリンクが表示されます。

関連する問題