2011-04-18 2 views
0

웹 사용자 컨 롤 (ASP.NET)을 사용하는 경우 마크 업에서 자바 스크립트 함수에 여러 객체를 전달하는 방법은 무엇입니까? 이 코드에서 <%%>있는 이유는 무엇입니까 ... ShowList를 호출하는 이미지 컨트롤에서 다음여러 컨트롤을 WebUserControl의 Javascript 함수에 전달하십시오.

<script type="text/javascript"> 
function ShowList(txt, lst) { 
    var t = document.getElementById(t.id); 
    var l = document.getElementById(l.id); 
    l.style.display = 'block'; 
} 
</script> 

<asp:Panel ID="Wrapper" runat="server" Width="200px"> 
<asp:TextBox ID="TextBox1" runat="server" Width="150px"></asp:TextBox> 
<asp:Image ID="Image1" runat="server" CssClass="image" ImageUrl="~/Images/cb-button-b3.png" 
    onclick='<%="ShowList("TextBox1,ListBox1)"%>'> 
</asp:Image> 
<asp:ListBox ID="ListBox1" runat="server" CssClass="listbox"> 
    <asp:ListItem>a</asp:ListItem> 
    <asp:ListItem>b</asp:ListItem> 
    <asp:ListItem>c</asp:ListItem> 
</asp:ListBox> 
</asp:Panel> 

답변

0

를 참조하십시오? 이 클라이언트에 도달하기 전에, 서버 측에서 그 부분을 처리하기 위해 ASP.NET을 말하고있다

onclick='<%="ShowList("TextBox1,ListBox1)"%>'

. 하지만 클라이언트 측 웹 브라우저에서 실행되는 javascript 함수를 호출하려고합니다. 또한 큰 따옴표가 잘못된 위치에 있습니다. 또한,

<asp:Image ID="Image1" runat="server" CssClass="image" 
    ImageUrl="~/Images/cb-button-b3.png" 
    onclick='ShowList(TextBox1,ListBox1)'></asp:Image> 

를 ASP에 의해 생성 된 HTML의 컨트롤 ID 확인 :

onclick='ShowList(TextBox1,ListBox1)'

전체 라인이 될 것입니다 :

는 대신에 냈다 위를 변경해보십시오. NET은 서버에 지정한 ID와 일치해야합니다. 마스터 페이지를 사용하는 경우 마스터 페이지를 사용할 수 없습니다. 이 경우 웹 브라우저에서 소스보기를 수행하고 이름을 검색하여 할당 된 이름을 확인해야합니다. 컨트롤의 최종 ID는 해당 NamingContainer에 따라 지정됩니다. 세부 정보는 질문의 범위를 벗어나지 만 Javascript에서 사용하는 ID (이 경우 TextBox1ListBox1)가 ASP.NET이 실제로 웹 브라우저에 출력하는 것과 일치하는지 확인하는 것이 가장 중요합니다 .

+0

답장을 보내 주셔서 감사합니다. 마크 업을 편집했지만 지금은이 오류가 발생합니다. "Microsoft JScript 런타임 오류 : 'TextBox1'이 정의되지 않았습니다." 나는 그것이 parameteres 앞에서 사용자 컨트롤의 intance 이름을 추가하는 것을 시도하고 있다고 생각한다. UserControl1_TextBox1과 마찬가지로 ... – TroyS

+0

<%...%>을 사용하는 이유는 원래 '%'ShowList ("+ Me.ClientID +"_TextBox1, "+ Me.ClientID +"_ListBox1) "% '. 나는 그것을 게시하는 것을 잊었다. – TroyS

+0

이 코드는 VB.NET 코드 내부에서 더 잘 수행 될 것이라고 생각합니다. Page_Load 이벤트에서 :'Image1.Attributes.Add ("onclick", "ShowList ("+ TextBox1.ClientID + ","+ ListBox1.ClientID + ")") ") –

관련 문제