如何在内容控件c#中获取特定表

时间:2014-05-08 08:56:06

标签: c# asp.net openxml openxml-sdk contentcontrol

我在同一个内容控件中有3个表,如何获取第一个表并将其删除?

我尝试过使用

SdtBlock ccWithTable = mainPart.Document.Body.Descendants<SdtBlock>().Where
                    (r => r.SdtProperties.GetFirstChild<Tag>().Val == tag).Single();

Table theTable = ccWithTable.Descendants<Table>().First();

ccWithTable.RemoveChild(theTable);

但是这给了我一个错误:

  

指定的oldChild不是此元素的子元素

我怀疑由于该表不是内容控件的子代,还有其他方法吗?

1 个答案:

答案 0 :(得分:2)

从您的评论中,我猜您可以访问table对象,但它不是sdtblock的直接子项,因此您无法使用{{ccWithTable.RemoveChild()将其删除1}}方法(是的,它假设要删除的项目是此元素的直接子项的一部分。)

但是如果你可以访问表对象(这是一个子chilld),则不需要知道它的父对象。 只需调用OpenXmlElement.Remove()方法:它将从其父级中删除元素。

theTable.Remove();