リストの人々( "支持者")と特定の日の会議をすべて1つのビューで作成する作業を進めています。私はASP.NET AJAXパッケージのRadControlsからTelerikのRadSchedulerコントロール(2011年第2四半期)を使用しています。asp.netを使用したTelerikスケジューラ - Everyonesの会議を1つのディスプレイに表示
私はAdvocatesとMeetingsの間にM:Mの関係があります。したがって、データベーステーブルの名前はGRS_Advocate
、GRS_Meeting
、GRS_AdvocateToMeeting
となります。
私が達成しようとしているのは、X軸の上にY軸と時間軸(1時間単位)のリストを持たせることです。私が見つけることができるTelerikのウェブサイトの最も近い例はここにhttp://demos.telerik.com/aspnet-ajax/scheduler/examples/timelineview/defaultcs.aspxであり、これは私が私のデータを模倣しようとしているものです。
これら二つの「重要な会議:
今
、ここで私が実際に取得しています何ののscreengrabだ:ここでは
は、私が希望するものを視覚的に表現します"レコードは 同じ会議のためのものであり、2人の異なる支持者が出席予定です。このミーティングは、最初の写真に示されているように、出席予定の各スポンサーに1回ずつ、2つの異なる行に表示する必要があります。ここからはどうすれば入手できますか?私は問題がグリッドにある<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それは上の画像は、日ビュー上にあることが指摘されたコメントで
、と私はタイムラインを使用する必要があります。それは正しいです;しかし、タイムラインビューを見ると、私の主張者はリストに載っていません。
表示されているスクリーンショットは、日表示のものです。あなたのモックアップのように見せたいのであれば、タイムラインビューを表示してはいけませんか?私はあなたがリンクしている例を参照していましたが、あなたが探しているものに似ているようですが、 "Day View"を参照していないようです。 – KreepN
また、コード行に: グループ化の方向を[縦]に変更します –
KreepN
ありがとうKreepN。私は上記を明確にし、GroupingDirectionをVerticalに固定しました。投稿の末尾の更新セクションを参照してください。 – splatto