저는 사람들 ("옹호자") 목록과 특정 날짜의 회의를 모두 한 화면에서 만들려하고 있습니다. 나는 ASP.NET AJAX 패키지의 RadControls에서 Telerik의 RadScheduler 컨트롤 (2011 Q2)을 사용하고 있습니다.asp.net이있는 Telerik Scheduler - Everyones 회의를 하나의 디스플레이에 표시합니다.
나는 옹호 모임과 모임 사이에 M : M 관계가 있습니다. 따라서 데이터베이스 테이블의 이름은 GRS_Advocate
, GRS_Meeting
및 GRS_AdvocateToMeeting
입니다.
달성하려는 목표는 X 축 상단에 Y 축 및 시간 (1 시간 단위로 증가)의 지지자 목록을 작성하는 것입니다. 내가 찾을 수있는 Telerik의 웹 사이트에서 가장 가까운 예제는 http://demos.telerik.com/aspnet-ajax/scheduler/examples/timelineview/defaultcs.aspx이며 여기가 내 데이터를 모방하려고합니다.
그 두 "중요한 회의 :
이제
, 여기에 내가 실제로 얻고 무엇을 screengrab가있다 : 여기
는 내가 좋아하는 것이 무엇의 시각적 표현이다 "기록은 동일한 회의인데이며 두 명의 다른 옹호자가 참석할 예정입니다. 이 회의는 첫 번째 그림에서 보여 지듯이 참석할 예정인 각 지지자에 대해 한 번씩 두 가지 다른 줄에 표시해야합니다.여기에서 어떻게 접근합니까? 내가 격자에있는 <ResourceTypes>
태그 안에 문제가있을 것으로 판단됩니다.
여기에 코드가 있습니다. 여기서는별로 중요하지 않지만 C#도 공유합니다.
<telerik:RadScheduler runat="server" ID="RadScheduler1" SelectedView="TimelineView"
DayStartTime="09:00:00" DayEndTime="19:00:00" DataSourceID="EventsDataSource"
DataKeyField="ID" DataSubjectField="Subject" DataStartField="Start" DataEndField="End"
OverflowBehavior="Expand"
Localization-HeaderMultiDay="Work Week" OnNavigationComplete="RadScheduler1_NavigationComplete">
<AdvancedForm Modal="true" />
<ResourceTypes>
<telerik:ResourceType KeyField="Adv_AdvocateID" Name="Advocate" TextField="Adv_FullName" ForeignKeyField="Adv_AdvocateID"
DataSourceID="AdvocatesDataSource" />
</ResourceTypes>
<TimelineView UserSelectable="true" GroupBy="Adv_AdvocateID" GroupingDirection="Horizontal" />
<MultiDayView UserSelectable="true" />
<DayView UserSelectable="false" />
<WeekView UserSelectable="false" />
<MonthView UserSelectable="false" />
</telerik:RadScheduler>
</asp:Panel>
<asp:SqlDataSource ID="EventsDataSource" runat="server"
ProviderName="System.Data.SqlClient" ConnectionString="<%$ ConnectionStrings:GRSConnectionString %>"
SelectCommand="select m.[Id], m.[Room], m.[Start], m.[End], m.[Notes], m.[Subject], a.[Adv_AdvocateID], a.[Adv_FullName] from GRS_Meeting m join GRS_AdvocateToMeeting am on am.Meeting = m.Id join GRS_Advocate a on am.advocate = a.Adv_AdvocateID">
</asp:SqlDataSource>
<asp:SqlDataSource ID="AdvocatesDataSource" runat="server"
ProviderName="System.Data.SqlClient" ConnectionString="<%$ ConnectionStrings:GRSConnectionString %>"
SelectCommand="SELECT [Adv_AdvocateID],[Adv_FullName] FROM [GRS_Advocate]">
</asp:SqlDataSource>
그리고 C# 코드
, 당신이 관심이 있다면 : 지금 잠시 동안이 작업을 봤는데 난 그냥이 시점 번번이 수private void Page_Load(object sender, EventArgs e)
{
if (RadScheduler1.SelectedView == SchedulerViewType.TimelineView)
{
RadScheduler1.TimelineView.SlotDuration = TimeSpan.Parse(DurationList.SelectedValue);
RadScheduler1.TimelineView.TimeLabelSpan = int.Parse(TimeLabelSpan.SelectedValue);
RadScheduler1.TimelineView.ColumnHeaderDateFormat = ColumnHeaderDateFormat.SelectedValue;
RadScheduler1.TimelineView.NumberOfSlots = int.Parse(NumberOfSlotsList.SelectedValue);
RadScheduler1.TimelineView.GroupingDirection = (GroupingDirection)Enum.Parse(typeof(GroupingDirection), GroupingDirection.SelectedValue);
}
else if (RadScheduler1.SelectedView == SchedulerViewType.MultiDayView)
{
RadScheduler1.MultiDayView.NumberOfDays = int.Parse(NumberOfDaysList.SelectedValue);
RadScheduler1.FirstDayOfWeek = (DayOfWeek)int.Parse(FirstDayOfWorkWeekList.SelectedValue);
RadScheduler1.SelectedDate = RadScheduler1.SelectedDate.AddDays((int)RadScheduler1.FirstDayOfWeek - (int)RadScheduler1.SelectedDate.DayOfWeek);
}
}
protected void RadScheduler1_NavigationComplete(object sender, SchedulerNavigationCompleteEventArgs e)
{
if (RadScheduler1.SelectedView == SchedulerViewType.MultiDayView)
{
RadScheduler1.MultiDayView.NumberOfDays = int.Parse(NumberOfDaysList.SelectedValue);
RadScheduler1.FirstDayOfWeek = (DayOfWeek)int.Parse(FirstDayOfWorkWeekList.SelectedValue);
//SelectedDate adjustment to make a Work Week view from Multi-day view
int WorkWeekAdjustmentTimeShift = (int)RadScheduler1.FirstDayOfWeek - (int)RadScheduler1.SelectedDate.DayOfWeek;
if (e.Command == SchedulerNavigationCommand.NavigateToNextPeriod)
{
if (WorkWeekAdjustmentTimeShift < 0)
WorkWeekAdjustmentTimeShift += 7;
}
else if (e.Command == SchedulerNavigationCommand.NavigateToPreviousPeriod)
{
if (WorkWeekAdjustmentTimeShift > 0)
WorkWeekAdjustmentTimeShift -= 7;
}
RadScheduler1.SelectedDate = RadScheduler1.SelectedDate.AddDays(WorkWeekAdjustmentTimeShift);
}
}
. 어떤 도움이라도 대단히 감사하겠습니다.
UPDATE는 위의 이미지는 날보기에 지적 된 의견에
, 나는 타임 라인을 사용해야합니다. 맞아요; 그러나 타임 라인보기를 볼 때 내 옹호자는 나열되지 않습니다. 사실, 아니 y 축과 x 축에 타임 라인하지만 아무것도 전혀 없다, 어떤 그리드는 표시하지 않을 :
표시되는 스크린 샷은 당일보기의 스크린 샷입니다. 당신의 목발처럼 보이길 원한다면 타임 라인보기를 보지 않겠습니까?링크 된 예를 참조하고 있었는데 찾고있는 것과 비슷하지만 "일별보기"를 전혀 참조하지 않는 것 같습니다. – KreepN
또한 코드 줄에서 다음을 수행하십시오.
KreepN
감사 KreepN. 위에 설명 된대로 GroupingDirection을 Vertical로 고정했습니다. 게시판의 끝에있는 업데이트 섹션을 참조하십시오. – splatto