Как я могу получить дочерние типы контента для типа контента?
Начиная с здесь Я узнал, что все дочерние типы контента имеют contentTypeId, начинающийся с идентификатора родителя. Итак, я попытался использовать предложенный способ, который находится в ссылке.
Позвольте мне показать вам, что я попробовал первым:
using (var site = new SPSite(SPContext.Current.Site.ID))
{
using (var web = site.RootWeb)
{
SPContentTypeId ctId = new SPContentTypeId(MasterContentTypeId);
SPContentType masterCt = web.ContentTypes[ctId];
var queryString = string.Empty;
queryString += "<Where>";
queryString += "<BeginsWith>";
queryString += "<FieldRef Name='ContentTypeId'/>";
queryString += "<Value Type='Text'>";
queryString += MasterContentTypeId;
queryString += "</Value>";
queryString += "</BeginsWith>";
queryString += "</Where>";
SPSiteDataQuery query = new SPSiteDataQuery { Query = queryString };
DataTable dt = web.GetSiteData(query);
DataView dv = new DataView(dt);
foreach (DataRow row in dt.Rows)
{
//Do Something Necessary
}
}
}
Но DataTable возвращается без строк.
Это правильный способ сделать это, но что-то не хватает или неправильно; или я все делаю не так?