2011-05-05 10 views
4

ASPX 페이지의 Repeater 컨트롤에서 Javascript 몇 줄을 출력하고 있습니다. 스크립트 태그 안에 DataSource의 값을 사용하고 싶습니다.<script><asp : repeater> 내의 태그

아주 기본적인 예는 다음과 같을 수 있습니다

<asp:Repeater ID="RepeaterBlah" runat="server"> 
<ItemTemplate> 
    Hello <%# DataBinder.Eval(Container.DataItem, "SomeName")%> 
    <script>myfunction(<%# DataBinder.Eval(Container.DataItem, "SomeNumber")%>)</script> 
</ItemTemplate> 
</asp:Repeater> 

나는 대부분의 사람들이 같은 스크립트 태그를 반복하지 않을 것을 알고 있어요,하지만 난 타사에서 간단한 코드를 사용하고 당신을 페이지의 아무 곳이나 두어 Flash 객체를 만들 수 있습니다. 숫자를 전달하면 표시 할 이미지 갤러리를 알 수 있습니다. 한 페이지에 여러 개를 사용하는 데 문제가 없습니다.

처음에는 Visual Web Developer의 색상이 태그 안에 사용 된 <%#을 실제로 사용하지 않았 음을 알았음에도 불구하고 정상적으로 작동했습니다. Intellisense도 코드 숨김에서 약간 열매를 맺고있었습니다!

그럼 데이터 세트 항목을 스크립트 태그에 전달하는 올바른 방법은 무엇입니까?

+0

텍스트 상자에 예제를 표시하십시오. 아마도 당신이 그것을 추가 할 때 오류가 도입되었을 것입니다. –

+0

잘 모르겠지만 템플리트를 제외하고 실제로 존재하지 않으므로 텍스트 상자 서버 컨트롤에 액세스 할 수 없다는 의미가 있습니다. 그것을 얻으려면 아마도 데이터 바인딩 이벤트를 처리하거나 템플릿을 거쳐야 할 것입니다. –

+0

죄송합니다. TextBox에 대한 언급은 무시해도 무관합니다. –

답변

2

아마도? 당신이 공급할 수있는

<%# Eval("SomeNumber", "<script>myfunction({0});</script>") %> 

이 선택적 매개 변수를 사용하여 또 다른 구문은 다음과 같은 것이다

<%# "<script>myfunction(" + DataBinder.Eval(Container.DataItem, "SomeNumber") + ")</script>" %> 
+0

예, 나는 그것을 시도했습니다. 그것은 효과가 있으며, Intellisense는 덜 신음합니다. 나는이 일을하는 '적절한'방법이 무엇인지 궁금합니다. –

1

을합니다 (+ 기호가 사실하지만 & 표시를해야하는지 확실히 기억 할 수 없습니다) 형식 문자열.