2011-04-20 80 views
0

我工作的一个新的数据类型为一把umbraco网站,并已建立一个自定义的控制,以适应这种连接到数据库。我需要查询文档类型的活动数据源。它会返回几个,我想用这些项目填充DropDownBox。我已经有了查询并准备好了,但是我无法连接到数据库来执行查询。由于它在自定义控件中,因此数据源不是内置于控件本身,而是内置于Umbraco中。任何帮助,将不胜感激!在一把umbraco用户/自定义控件数据类型

+0

听起来很明显,但你这样做http://tinyurl.com/3u9e87b。我认为你需要更多关于设置数据源的信息,在这种情况下,你可以参考任何文章。 Puttin作为评论,因为你的问题对我来说不是很清楚。 – 2011-04-20 12:30:24

+0

当然,我甚至在这里发帖之前检查了一把umbraco论坛的支持。我只是喜欢开发社区在这里并推断,如果别人用一把umbraco经验横跨问题跌跌撞撞这将是他们一个简单的答案。数据源被内置到一把umbraco的安装,所以我猜有我可以使用的地方通过查询并获得满意的结果,只是一直没能找到其中的方法。 – Dexter 2011-04-20 12:43:53

回答

1

如果有人有兴趣,我可以解决这个使用以下。包括ISqlHelper的方法:

public static ISqlHelper SqlHelper 
    { 
     get 
     { 
      return Application.SqlHelper; 
     } 
    } 

使用ISqlHelper,我能够运行一个查询并填充下拉:

IRecordsReader docTypes = SqlHelper.ExecuteReader("SELECT nodeId, alias FROM cmsContentType WHERE alias IN ('Product','Article') ORDER BY alias"); 

     while (docTypes.Read()) 
     { 
      string dtName = docTypes.GetString("alias"); 
      string dtId = docTypes.GetInt("nodeId").ToString(); 

      _lstDocType.Items.Add(new ListItem(dtName, dtId)); 
     } 

希望帮助别人呢!

0

您还可以使用一把umbraco业务逻辑把所有的文件类型与:

var DocTypes = um.cms.businesslogic.web.DocumentType.GetAllAsList(); 
var DocTypeDropDown = new DropDownList(); 
foreach (var DocType in DocTypes) 
{ 
    var DocTypeListItem = new ListItem 
    { 
     Text = DocType.Text, 
     Value = DocType.Id.ToString() 
    }; 
    DocTypeListItem.Attributes.Add("rel", DocType.Alias); 
    DocTypeDropDown.Items.Add(DocTypeListItem); 
} 

可以很明显的安排DropDownList的,只要你喜欢,我只是想提醒大家注意的属性:文本,别名,以及您希望使用DocType的可能项目。