2011-10-06 4 views
0

내 포럼에서 주제의 응답 수를 표시 할 수있는 코드 라인을 찾고 있습니다. 리피터 (REPEATER_1)를 사용하여 제목 및 텍스트와 같은 각 주제에 대한 기타 정보를 표시합니다. 예를 들어, 제목을 얻기 위해, 내가 사용이 잘 작동리피터에서 추가 선택을 내릴 수있는 방법

<%# DataBinder.Eval(Container, "DataItem.title")%> 

하지만, 응답을 계산, 나는이 주제에 대한 모든 응답을 다른 테이블에 액세스하고 계산해야합니다. %가

내가 거기에 알> ..

"SELECT COUNT(ID) FROM [replies] WHERE parent='" & <%# DataBinder.Eval(Container, "DataItem.ID")%> & "';" 

하지만 어떻게 <퍼센트 #의 XXXX를 사용하여 페이지의 형태 내에서이 SelectCommand에 실행 (및 리피터 지역 내의) 않는 : 나는 다음 SelectCommand에를 사용 코드 숨김을 사용하는 대안이지만 < % # XXXX .. %>

또한 < % # XXXX .. %>을 (를) 사용하여 양식 안에서 스크립트를 수행 할 때 무엇을 호출할까요? "? 이 웹 사이트에서 "< % #"을 검색 할 수 없기 때문에 웹에서 검색하는 것이 더 쉬울 것입니다.

+0

이것은 'Global.asax' 파일과 어떤 관련이 있습니까? –

+0

오 죄송합니다. Global.asax에서 함수를 만들어 양식 내부에서 호출할지 여부는 혼란 스럽지만 저에게는 불가능한 것처럼 보입니다. 그래서 나는 함수없이 그냥이 selectCommand를 실행할 것이라고 생각했다. –

답변

0

리피터 이벤트 ItemDataBound에서이 작업을 수행합니다.

현재 접근 방식을 따르고 있지만 항목을 가져 오는 쿼리로 응답 횟수를 반환해야합니다. 그렇게하는 방식으로 데이터베이스를 너무 많이 호출하고 있습니다.

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    // !! use a parameterized query here to avoid SQL injection 
    string query = String.Format("SELECT x FROM y WHERE z = {0}", DataBinder.Eval(e.Item.DataItem, "SomeColumn")); 

    //execute your query to get reply count 
    int replyCount = ExecuteQuery(query); // !! example 

    Label lbl = e.Item.FindControl("ReplyCountLabel") as Label; 
    if (lbl != null) 
    { 
     lbl.Text = replyCount.ToString() 
    } 
} 
관련 문제