2016-08-03 6 views
0

Content-Typeフィールドに「RowCount」値を取得しようとしています。2sxc:「ContentTypeフィールド」/入力タイプ固有/プロパティ値を取得する方法

    私は基本的な属性を持つすべてのフィールド一覧表示することができたより、私はすべてのアプリケーションのコンテンツタイプ
  • を一覧表示することができます私のコードで
  • (名前、ラベル、のDefaultValueを...)

しかし、今私がしようとしていますほぼ満席の追加入力型固有の値にアクセスするための一日が、運と...

これは私が追加の値を取得したいコメントと私の現在のコード..です

public string GetTablesAndFields(){ 
    var cache = ToSic.Eav.DataSource.GetCache(null, App.AppId) as ToSic.Eav.DataSources.Caches.BaseCache; 
    var allTypes = cache.GetContentTypes().Select(t => t.Value); 
    var appTypes = allTypes.Where(t => t.Scope == "2SexyContent").ToList(); 

    var zoneId=(int)ToSic.SexyContent.Internal.ZoneHelpers.GetZoneID(Dnn.Module.PortalID); 
    var metaDataSource = ToSic.Eav.DataSource.GetMetaDataSource(zoneId, App.AppId); 

    var code =""; 
    foreach(ToSic.Eav.Data.ContentType t in appTypes){ 
     code = code + t.Name + " | " + t.Scope + " | fields : " + t.AttributeDefinitions.Count + "<br/>"; 
     foreach(var a in t.AttributeDefinitions){ 
      var f = GetFieldMetadata(metaDataSource, a.Key); 

      code += "<hr><pre>"; 
      code += "# Name    #" + a.Value.Name + "<br/>"; 
      code += "# Name Label   #" + f.Title[0] + "<br/>"; 
      code += "# Visible in Edit UI #" + f.Attributes["VisibleInEditUI"][0] + "<br/>"; 
      code += "# Default value  #" + f.Attributes["DefaultValue"][0] + "<br/>"; 
      code += "# Required   #" + f.Attributes["Required"][0] + "<br/>"; 
      code += "# Disabled   #" + f.Attributes["Disabled"][0] + "<br/>"; 
      code += "# Input Type   #" + f.Attributes["InputType"][0] + "<br/>"; 
      code += "# Notes    #" + f.Attributes["Notes"][0] + "<br/>"; 
      code += "# Validation   #" + f.Attributes["ValidationRegExJavaScript"][0] + "<br/>"; 
      code += "</pre><hr>"; 

      // How to access "RowCount" or other InputType specific values? 
     } 
    } 
    return code; 
} 

答えて

0

あなたがAttributeDefinitions のためのforeachを使用していない場合は、すべてのデータをこのように得ることができます。

 ToSic.Eav.WebApi.ContentTypeController eavCtc; 
     eavCtc = new ToSic.Eav.WebApi.ContentTypeController(); 
     eavCtc.SetUser(ToSic.SexyContent.Environment.Dnn7.UserIdentity.CurrentUserIdentityToken); 
     var fields = eavCtc.GetFields(App.AppId, staticName); 

あなたは問題のコードからstaticNameを取得することができます。

t.StaticName 
関連する問題