2016-05-31 20 views
0

我能够使用API​​密钥成功从我的Google日历中提取活动。

的事件在我的网页上显示如下:
2016年5月31日上午9时00分○○秒 - 2016年5月31日12:00:00 PM
活动名称:员工会议
说明:每周员工会议

我想通过代码背后的代码将“Event Title”的颜色设置为红色。我试图在我的dt.Rows.Add中对其进行更改,但一直不成功。有没有办法让我在后面的代码中进行更改,以便只生成“事件标题:”?使用Google Calendar API v3和数据中继器更改Google日历活动的标题

ASPX代码

<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代码

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

哪里是你的事件的标题?它在标签内吗?如果只是获取标签的句柄并更改它的颜色:'Label t =(Label)e.Row.FindControl(“lblTitle”); t.ForeColor = Color.Red' – JonH

+0

它在aspx页面和aspx.cs中的数据中继器<%#Eval(“Summary”)%>它在这里dt.Rows.Add(string.Format(**事件标题:**); – skaur

+0

正确,但你应该将它绑定到类似标签的东西,通过这样做,你可以利用诸如ItemCommand等事件。在你的情况下,你有'lblItemTemplate'只是捕获该标签并设置背景或前景色 – JonH

回答

1

您可以在<font>标签简单地包裹:

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

我试过,但字体标签不工作,当我尝试它。:-( – skaur

+0

谢谢你的建议,我得到它的工作。弄清楚我做错了什么,只好分解代码。 – skaur

相关问题