Zmiana wyświetlania wyboru miesiąca i wyświetlania wyboru roku jako dekadę w kalendarzu aspx visual studio

0

Proszę o pomoc, podpowiedź, wytłumaczenie. Szukałam 3 dni w Google i nie znalazłam. Dopiero się uczę się asp.net, c#. Mam do zrobienia zadanie na zaliczenie a wykładowca nie wytłumaczył i nie pokazał nawet podobnej aplikacji. Nie mieliśmy też podstaw na zajęciach

Mam zrobić kalendarz z przyciskiem zatwierdź jak poniżej i zrobiłam, ale muszę zmienić widok po kliknięciu w styczeń 2021 tak żeby wyświetlały się wszystkie miesiące i dekady lat. Jak to zrobić?

Klikam styczeń 2021

Po kliknięciu w styczeń 2021 pokazuje się widok jak poniżej.
screenshot-20210110123016.png

Wybieram 2020 i wyświetla się jak poniżej
screenshot-20210110123131.png

Klikam January i wyświetla się jak poniżej
screenshot-20210110123304.png

Wybieram dzień i klikam zatwierdź.

Default.aspx

<%@ Page Title="Kalendarz Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeFile="Default.aspx.cs" Inherits="_Default" %>
 
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
 
</asp:Content>
 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        <span style= "color: red"><b>KALENDARZ ASP.NET!</b></span></h2>
    <h2>
        &nbsp;<asp:Calendar ID="Calendar1" runat="server" BackColor="#CC0000"
            BorderColor="White" BorderWidth="4px" CellPadding="1" DayNameFormat="Full"
            Font-Names="Verdana" Font-Size="10pt" ForeColor="White" Height="200px"
            onselectionchanged="Calendar1_SelectionChanged" VisibleDate="2021-01-07"
            Width="220px">
            <DayHeaderStyle BackColor="#006699" BorderColor="White" BorderWidth="1px"
                Font-Bold="True" Font-Names="Verdana" Font-Size="10pt" ForeColor="White"
                Height="4px" Wrap="True" />
            <DayStyle BorderColor="White" BorderWidth="1px" Font-Names="Verdana"
                Font-Size="10pt" ForeColor="White" BackColor="#CC0000" />
            <NextPrevStyle BorderColor="Black" Font-Names="Verdana" Font-Size="10pt"
                ForeColor="White" BackColor="#CC0000" />
            <OtherMonthDayStyle BackColor="#CC0000" BorderColor="White" BorderWidth="1px"
                Font-Names="Verdana" Font-Size="10pt" ForeColor="White" />
            <SelectedDayStyle BackColor="#006699" BorderColor="White" BorderWidth="1px"
                Font-Bold="True" Font-Names="Verdana" Font-Size="10pt" Font-Strikeout="False"
                ForeColor="White" HorizontalAlign="Center" />
            <SelectorStyle BackColor="#CC0000" BorderColor="White" BorderWidth="1px"
                Font-Names="Verdana" Font-Size="10pt" ForeColor="#006699" />
            <TitleStyle BackColor="#CC0000" BorderColor="White" BorderWidth="1px"
                Font-Bold="True" Font-Size="10pt" ForeColor="White" Height="25px" />
            <TodayDayStyle BackColor="#006699" BorderColor="White" BorderWidth="1px"
                Font-Bold="True" Font-Names="Verdana" ForeColor="White" />
            <WeekendDayStyle BackColor="Red" BorderColor="White" BorderWidth="1px"
                Font-Bold="True" Font-Names="Verdana" ForeColor="White" Wrap="True" />
        </asp:Calendar>
    </h2>
    <p style="font-family: Verdana; font-size: 11px; color: #000000">
        <b>Wybierz datę i naciśnij przycisk Zatwierdź</b></p>
<p style="font-family: Verdana; font-size: 11px; color: #000000">
        <asp:Button ID="Button1" runat="server" BackColor="#CC0000" BorderColor="White"
            BorderWidth="2px" Font-Bold="True" Font-Names="Verdana" Font-Size="10pt"
            Font-Underline="False" ForeColor="White" onclick="Button1_Click"
            Text="Zatwierdź" />
</p>
<p style="font-family: Verdana; font-size: 11px; color: #000000">
        <asp:Label ID="Label1" runat="server" Text="Komunikat"></asp:Label>
</p>
    <p>
        &nbsp;</p>
</asp:Content>

Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {
 
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = Calendar1.SelectedDate.ToShortDateString() + ", " + Calendar1.SelectedDate.DayOfWeek.ToString() + " <br /> " + DateTime.Now.ToString("dddd, MMMM") + ", " + Calendar1.SelectedDate.Year.ToString() + ", <br /> " + DateTime.Today.ToString("D");
 
    }
}

2

uczenie web formsów w 2021 powinno być nielegalne

0
Marta Długa napisał(a):

Mam zrobić kalendarz z przyciskiem zatwierdź jak poniżej i zrobiłam, ale muszę zmienić widok po kliknięciu w styczeń 2021 tak żeby wyświetlały się wszystkie miesiące i dekady lat. Jak to zrobić?

A co to znaczy "wszystkie miesiące i dekady lat"?

0

Po kliknięciu w styczeń 2021 pokazuje się widok jak poniżej, czyli dekada lat.
https://4programmers.net/uploads/88903/sxIs9NPFMcM241kzI8W2HFzLmENkoJPhvyhs3hQG.png

Wybieram 2020 i wyświetla się jak poniżej czyli wszystkie miesiące
https://4programmers.net/uploads/88903/6JY3ZMDrNmebhNFy3iWmIRwTxt8jhlZ1Bmq5F9dx.png

Klikam January i wyświetla się jak poniżej
https://4programmers.net/uploads/88903/vKlxWtWS6mnHGoznxW2n9aLRou2TxnctYxWjvCqX.png

Błagam o pomoc. Muszę to zadanie wysłać do 15 stycznia.

0

Dobra, czyli chcesz mieć kalendarz a la taki jak w Windowsie.

Zwykły webformsowy kalendarz tego nie potrafi. Myślę, że tu trzeba by zrobić usercontrol, które będzie miało trzy tryby pracy: lata, miesiące, dni. Dwa pierwsze trzeba zrobić samemu (buttony w rządkach i kolumnach), widok dni może być zaadaptowany z wbudowanego kalendarza, tylko trzeba się pozbyć etykiety z nazwą miesiąca u góry. Trzeba ją zastąpić swoim przyciskiem, który będzie zmieniał stan tej usercontrolki i powodował przełączenie widoku na "wyższy".

0

@Marta Długa: odpowiadając na pytanie z komentarza: Co jest odpowiedzialne za etykiety z nazwą miesiąca u góry. Nie mogę znaleźć kodu odpowiedzialnego za te etykiety.

To jest wbudowane zachowanie tej kontrolki. Nie masz wpływu na to, co się tam wyświetla, nie da się go zmienić (no chyba, że jakoś po stronie klienckiej). Dlatego napisałem, że trzeba to w praktyce zrobić praktycznie od początku własną kontrolkę z trzema widokami, które będą się podmieniały.

0

Jak zrobić własną kontrolkę. Tego nas nie uczyli. Nawet podstaw nie mieliśmy.

0

No może założyli, że trzeba się nauczyć samemu.
Może nie mam racji, ale nie mam pojęcia jak inaczej miałoby to być osiągalne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1