2011-04-20 2 views
0

Umbraco 사이트에 대한 새로운 데이터 형식을 만들고 있으며 이에 맞게 사용자 지정 컨트롤을 작성하고 있습니다. 문서 유형에 대한 활성 데이터 소스를 쿼리해야합니다. 그것은 여러 항목을 반환 할 것이고 해당 항목으로 DropDownBox를 채 웁니다. 나는 쿼리를 받았고 갈 준비가되었습니다. 그러나 쿼리를 실행하기 위해 DB에 연결하는 데 문제가 있습니다. 사용자 정의 컨트롤이므로 데이터 소스는 Umbraco에서 컨트롤 자체에 내장되어 있지 않습니다. 이것에 대한 도움은 크게 감사하겠습니다 !!Umbraco의 DB에 연결 사용자/사용자 지정 컨트롤 데이터 형식

+0

분명히 들리지만 http://tinyurl.com/3u9e87b에서이 작업을 수행 했습니까? 나는 당신이 일반적으로 데이터 소스를 설정하는 것에 대한 더 많은 정보를 필요로한다고 생각한다. 귀하의 질문에 대한 코멘트로 푸틴은 나에게 그렇게 분명하지 않았습니다. –

+0

물론, 여기에 게시하기 전에 Umbraco 포럼에서도 지원을 확인했습니다. 나는 여기서 개발 공동체가 마음에 드는데, Umbraco 경험을 가진 다른 사람이 문제를 우연히 발견하면 쉽게 대답 할 수있을 것이라고 생각했습니다. 데이터 소스는 Umbraco의 설치에 내장되어 있으므로 어딘가에서 쿼리를 전달하고 결과를 얻을 수있는 방법이 있으며 어디서 찾을 수 없었는지 추측합니다. – Dexter

답변

1

관심있는 사람은 다음을 사용하여 해결할 수있었습니다. 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)); 
     } 

희망 다른 너무 사람을 도움이 다음 ISqlHelper를 사용

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

, 내가 드롭 다운을 쿼리를 실행하고 채울 수 있었다!

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로를 정렬 할 수 있습니다, 난 그냥 속성에 관심을 끌기 위해 원 , Id를 DocType에 사용할 가능성이있는 항목으로 지정합니다.