2013-03-26 7 views
0

일부 chartfx 표시가있는 링크 목록을 표시하는 for 루프를 작성하고 있습니다. chartfx에는 sqlDataSource가 필요합니다. for 루프가 하나의 반복을 할 때마다 고유 ID를 주려고하지만 값이나 함수를 전달할 수 없습니다. 아래 코드 예제. getSQLID()는 ID가되기를 원하는 문자열을 반환하는 함수입니다. 이것은 모두 aspx 페이지에서 수행되며 함수는 .cs에 있습니다. 어떤 도움이라도 정말로 감사 할 것입니다.변수 또는 함수를 사용하여 HTML에서 SqlDataSource ID를 선언하는 방법

 //name of the contentplace holder on the aspx page 
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server" > 

    //code behind 
    Control ctrl = LoadControl("WebUserControl.ascx"); 
    Control placeHolderControl = this.FindControl("Content2"); 
    Control placeHolderControl2 = this.FindControl("ContentPlaceHolder1"); 

    ctrl.ID = "something"; 
    if (placeHolderControl != null) 
     placeHolderControl.Controls.Add(ctrl); 
    if (placeHolderControl2 != null) 
     placeHolderControl2.Controls.Add(ctrl); 
+0

Hmmm. 이것이 문제에 접근하는 가장 좋은 방법 인 것 같지 않습니다. 각 chartfx 컨트롤에 대해 별도의 SqlDataSource가 필요합니까? – jadarnel27

+0

예, 각각 하나의 결과가 sqlDataSource를 기반으로 표시됩니다. – dreebee

+0

for 루프는 어디에 있습니까? – bmm6o

답변

0

우선 디자이너는 이렇게 선언 한 서버 컨트롤이 컴파일 타임에 클래스에 연결된다는 것을 상기하십시오. 따라서 런타임에 여러 인스턴스를 루프로 작성하려고 시도하는 것이 타당하지 않습니다. 컴파일시 Id 태그를 알아야합니다. 것이 가능하지만 (약간의 작업을 할 수 있습니다 뒤에 코드에 그 선언의 모든 속성을 변환 귀하의 경우에는

for (int i=0; i<2; ++i) 
{ 
    var chart = new Chart(); 
    chart.Id = "chartId" + i; 
    chart.DataSourceId = "srcid" + i; 

    var src = new SqlDataSource(); 
    src.Id = "srcid" + i; 

    Controls.Add(chart); // either add to the collection or add as a child of a placeholder 
    Controls.Add(src); 
} 

:

하나의 대안은 같은과, 뒤의 코드를 작성하는 것입니다). 또 다른 대안은 현재 aspx 페이지에있는 마크 업을 포함하는 사용자 컨트롤 (ascx)을 만드는 것입니다. 다음과 같이 코드의 컨트롤을 인스턴스화합니다.

for (int i=0; i<2; ++i) 
{ 
    var ctrl = LoadControl("~/path/to/Control.ascx"); 
    ctrl.Id = "something_" + i; 
    Controls.Add(ctrl); // again, either here or as a child of another control 
    // make the src, hook them up 
} 
+0

'<% = GetSqlId (i) %>'이 (가) 올바른 식별자가 아닙니다. ' chartfx에서 동일한 작업을 수행 할 때 DataSourceID = "<% = GetSqlId (i) %>" – dreebee

+0

분명히 그들 중 하나가 그들에게 ID를 부여하는 기능을 갖고 있지 않습니다. – dreebee

+0

사물의 aspx 쪽은 내가이 모든 코드가 chartfx와 asscociated 있기 때문에 100 % 확신하지 어떻게 코드가 위의 내 코드의 게시물 더 아프 차트에 연결됩니다. 코드에서 그 코드를 수행해야합니까? – dreebee