2016-05-31 6 views
0

Ich kann Ereignisse aus meinem Google-Kalender mithilfe eines API-Schlüssels erfolgreich abrufen.

Die Ereignisse werden auf meiner Webseite wie folgt dargestellt:
5/31/2016 9:00:00 AM - 2016.05.31 12.00.00
Veranstaltung Titel: Staff Meeting
Beschreibung: Wöchentliche Mitarbeiterbesprechung

Ich möchte die Farbe für "Event Title" auf rot durch den Code hinter der Datei festlegen. Ich habe versucht, es in Zeile in meinem dt.Rows.Add zu ändern, aber war erfolglos. Gibt es eine Möglichkeit für mich, es im Code hinter zu ändern, damit nur der "Event Title:" ausgeführt wird?Ändern des Titels des Google Kalender-Termins mit Google Kalender API v3 und Data Repeater

aspx Code

<div>   
    <asp:Repeater runat="server" ID="rptCalEvents"> 
     <ItemTemplate>     
      <asp:Label runat="server" ID="lblItemTemplate" Visible="true"> <%# Eval("Summary") %> </asp:Label>  
     </ItemTemplate> 
    </asp:Repeater> 
    <br /> 
    <asp:Label runat="server" ID="lblTesting" ForeColor="#660000" Font-Bold="true" Font-Size="15px" Visible="false"></asp:Label>   
</div> 

aspx.cs Code

protected void Page_Load(object sender, EventArgs e) 
{     
    GetCalEvents(); 
} 
private void GetCalEvents() 
{   
    var service = new CalendarService(new BaseClientService.Initializer() 
    { 
     ApiKey = "MY API KEY", 
     ApplicationName = "Events Calendar", 
    }); 

    DataTable dt = new DataTable(); 
    dt.Columns.Add("Summary"); 

    EventsResource.ListRequest request = service.Events.List("Google Calendar"); 
    request.TimeMin = DateTime.Now; 
    request.TimeMax = DateTime.Today.AddDays(1); 
    request.SingleEvents = true; 
    request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime; 

    Events events = request.Execute(); 
    if (events.Items != null && events.Items.Count > 0) 
    { 
     foreach (var eventItem in events.Items) 
     { 
     string when = eventItem.Start.DateTime.ToString(); 

     if (String.IsNullOrEmpty(when)) 
     { 
      when = eventItem.Start.Date; 
     } 

     dt.Rows.Add(string.Format(when + " - " + eventItem.End.DateTime + "<br /><strong>" + "Event Title:" + "&nbsp;" + eventItem.Summary + "</strong>" + "<br /><strong>Event:</strong><br />" + eventItem.Description + "<hr/>")); 
     } 

     rptCalEvents.DataSource = dt; 
     rptCalEvents.DataBind(); 
    } 
    else 
    { 
     lblTesting.Visible = true; 
     lblTesting.Text = "<strong>" + "No Upcoming Events for Today!!!" + "</strong>"; 
    } 
} 
+0

Wo ist der Titel Ihrer Veranstaltung ? Ist es in einem Etikett? Wenn es nur ein Handle des Labels bekommt und seine Farbe ändert: 'Label t = (Label) e.Row.FindControl (" lblTitle "); t.ForeColor = Color.Red' – JonH

+0

Es ist in einem Daten Repeater <% # Eval ("Zusammenfassung")%> auf der Aspx-Seite und auf der aspx.cs ist es hier dt.Rows.Add (string.Format (** Event Title: **); – skaur

+0

Richtig, aber Sie sollten es an etwas wie eine Beschriftung binden, dadurch können Sie Ereignisse wie ItemCommand, etc. nutzen. In Ihrem Fall haben Sie 'lblItemTemplate' nur diese Beschriftung erfassen und die Hintergrund- oder Vordergrundfarbe – JonH

Antwort

1

Sie können einfach in einem <font> Tag wickeln:

dt.Rows.Add(string.Format(when + " - " + eventItem.End.DateTime + "<br /><font color=\"red\"><strong>" + "Event Title:" + "&nbsp;" + eventItem.Summary + "</strong></font>" + "<br /><strong>Event:</strong><br />" + eventItem.Description + "<hr/>")); 
+0

Ich habe das versucht, aber das Font-Tag funktioniert nicht, wenn ich es versuche. :-( – skaur

+0

Danke für den Vorschlag. Ich habe es funktioniert herausgefunden, was ich falsch gemacht habe, musste den Code auseinander brechen. – skaur