2016-07-21 5 views
0

Wenn Daten in der Datenbanktabelle verfügbar sind, sollte die Kalenderhintergrundfarbe als rote Farbbasis für verfügbare Ereignisdaten in einer SQL-Tabelle geändert werden. Unten ist mein Design-Code.ASP-Kalendersteuerung zum Ändern des Hintergrundfarbcodes hinter C#

<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged"> 
</asp:Calendar> 
Selected Date: <asp:Label ID="Label1" runat="server" ></asp:Label> 

<br /> 
<br /> 

    <asp:GridView ID="gv_Regdetails" runat="server" AllowSorting="True" 
       AlternatingRowStyle-CssClass="alt" AutoGenerateColumns="False" CssClass="mGrid" 
       Width="900px" PageSize="50"> 
       <RowStyle HorizontalAlign="Center" /> 
       <AlternatingRowStyle CssClass="alt" /> 
       <Columns> 
        <asp:TemplateField HeaderText="Sno"> 
         <ItemTemplate> 
          <%# Container.DataItemIndex + 1 %> 
         </ItemTemplate> 
         <HeaderStyle HorizontalAlign="Center" Width="30px" /> 
         <ItemStyle CssClass="th" HorizontalAlign="Center" Width="30px" /> 
        </asp:TemplateField> 
        <asp:BoundField DataField="EventName" HeaderText="EventName"> 
         <ItemStyle CssClass="th" HorizontalAlign="Left" Width="30px" /> 
         <HeaderStyle HorizontalAlign="Left" Width="30px" Height="25px" /> 
        </asp:BoundField> 
        <asp:BoundField DataField="Title" HeaderText="Title"> 
         <ItemStyle CssClass="th" HorizontalAlign="Left" Width="30px" /> 
         <HeaderStyle HorizontalAlign="Left" Width="30px" Height="25px" /> 
        </asp:BoundField> 

        <asp:BoundField DataField="Description" HeaderText="Description"> 
         <ItemStyle CssClass="th" HorizontalAlign="Left" Width="30px" /> 
         <HeaderStyle HorizontalAlign="Left" Width="30px" Height="25px" /> 
        </asp:BoundField> 

       </Columns> 
       <EmptyDataTemplate> 
        <center> 
            <asp:Label ID="Label12" runat="server" Text="No Data avaliable for selected dates" 
             ForeColor="Red"></asp:Label></center> 
       </EmptyDataTemplate> 
      </asp:GridView> 

Unten ist mein C# Code und ich schreibe meine Logik in Calendar1_DayRender Methode.

protected void Calendar1_SelectionChanged(object sender, EventArgs e) 
{   
    Label1.Text = Calendar1.SelectedDate.ToShortDateString(); 
    bo.Para1 = Label1.Text; 
    DataTable dt = new DataTable(); 
    dt = bl.Get_detailsbydate(bo); 
    gv_Regdetails.DataSource = dt; 
    gv_Regdetails.DataBind(); 
} 
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    dt = bl.Get_detailsbydate(bo); 
    string dates = dt.Rows[0]["EventDate"].ToString(); 

// if (e.Day.Date == dates) 
// { 
//   e.Day.IsSelectable = false; 
//   e.Cell.ForeColor = System.Drawing.Color.Red; 
// } 


} 

Antwort

0
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    dt = bl.Get_detailsbydate(bo); 
    string dates = dt.Rows[0]["EventDate"].ToString();// Confirm if you EventDate is in a same format to calendar 

    if (e.Day.Date == dates) 
    { 
     e.Day.IsSelectable = false; 
     e.Cell.BackColor = System.Drawing.Color.Red; 
    } 


} 
+0

Willkommen bei Stack-Überlauf! Während dieses Code-Snippet das Problem lösen kann, erklärt es nicht, warum oder wie es die Frage beantwortet. Bitte [fügen Sie eine Erklärung für Ihren Code hinzu] (// meta.stackexchange.com/q/114762/269535), da dies wirklich zur Verbesserung der Qualität Ihres Posts beiträgt. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. ** Flaggers/Reviewer: ** [Für Code-only-Antworten wie diesen, downvote, nicht löschen!] (// meta.stackoverflow.com/a/260413/2747593) –

Verwandte Themen