我使用以下代码更改Google Calendars Event的位置:
EventEntry eventEntry = this.GetGoogleEvent(evt,cal);
eventEntry.Title.Text = evt.Summary;
eventEntry.Locations.Clear();
if( NEWLOCATION != "" ) eventEntry.Locations.Add(new Where("", "", NEWLOCATION));
...
EventEntry newEvent = (EventEntry)eventEntry.Update();
它适用于更改位置,但NEWLOCATION
为空字符串时不会更新任何内容:""
任何解决方法?这是一个API错误?
感谢您的建议!
编辑:
也是在没有if( NEWLOCATION != "" )
答案 0 :(得分:1)
如果你调用Locations.Clear()然后调用Update(),你将发送一个没有任何gd:where元素的PUT请求。更新请求仅更新请求中指定的那些字段,因此事件的gd:where元素将不受影响。
如果要清除事件的gd:where字段,则必须发送包含单个gd的更新请求:where其值为空字符串的元素。例如,您可以使用以下代码:
entry.Locations.Clear();
entry.Locations.Add(new Where());
entry.Update();
库中有一个导致空gd的错误:在更新请求期间要忽略valueString元素。几分钟前在rev中修复了这个bug。图书馆的1113:
答案 1 :(得分:0)
对于初学者,我会与空字符串进行比较:
if( NEWLOCATION != string.Empty )
{
eventEntry.Locations.Add(new Where("", "", NEWLOCATION));
}
此外,我总是使用括号,只是为了确保我知道如果条件匹配将会执行什么 至于空位,我可能在这里根本就错了,但是Locations.Clear()方法是不是已经将Locations设置为空值?不接受吗?也许您需要两个单独的更新,一个用于清除位置,另一个用于更改其他值?