2012-07-12 6 views
0
아래

은 vb를 서버 측 언어로 사용하는 asp.net 애플리케이션의 버튼에 대한 html 코드입니다. 버튼은 아래에 코드가 나열된 서버 측에서 처리됩니다. 내 문제는 onclick 이벤트를 추가 할 때입니다.이 페이지는 응용 프로그램의 iframe에만 표시되기 때문에 같은 페이지 또는 상위 항목에서 자바 스크립트 함수를 호출하고 싶지는 않습니다. 아래 다음과 같이 변경하면버튼에 onclick 이벤트를 추가하면 페이지에 오류가 발생합니다

현재이 버튼

<asp:button class="smalltextbutton" id="Button1" runat="server" Text="Save"></asp:button> 

에 대한 HTML은, 나는 페이지가 진술 "컴파일러 오류 메시지를 시작하는 오류가 발생합니다 : BC30456를 'refreshParentTree'는 아니다 'ASP.tasks_modifytask_aspx'. "

<asp:button class="smalltextbutton" id="Button1" OnClick="refreshParentTree()" runat="server" Text="Save"></asp:button> 

의과에 대한 회원은 이제 자바 스크립트 함수는 여기 형태의 외부, 아주 기본적인이 모습입니다. 서버 측에

<script language="javascript"> 
function refreshParentTree(){ 
     alert('refresh parent tree hit'); 
     } 
</script> 

, 여기에 내가 왜 페이지가 제공되는 여기에 잘못 수행 된 것을 찾고 있어요, 그래서 기본적으로 버튼 클릭을 처리하는 내 코드 (VB)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    'DEBUG: 
    If Trace.IsEnabled Then cGK_testSpot.Text += "<div style='border: solid thin orange;'>Button1_Click() STARTING<br>" 
    'DEBUG: 
    If Trace.IsEnabled Then cGK_testSpot.Text += "<div style='border: solid thin green;'>printArrayList (delete ALL EXCEPT this list from P2_CustomFields_Detail): " + CustomFieldsLibrary.printArrayList(arlist_dynCompnts) + "</div>" 

    If Page.IsValid Then 
     CustomFieldsLibrary.deleteAllDynamicFieldsExceptThisList(lnCurrent, 13, -1, arlist_dynCompnts, (New SqlConnection((New ConnInfo).GetConnString)), True) 
     UpdateDatabase() 
     If Not Trace.IsEnabled Then Server.Transfer("viewTask.aspx?taskgrpid=" & lnCurrent & "&taskgrpcategory=13&ptaskgrpid=" & Request.QueryString("ptaskgrpid") & "&ptaskgrpcategory=" & Request.QueryString("ptaskgrpcategory") & "&refresh=true") 
    Else 
     populateDropDowns() 
    End If 

    If Trace.IsEnabled Then cGK_testSpot.Text += "<div style='border: solid thin green;'>printArrayList: " + CustomFieldsLibrary.printArrayList(arlist_dynCompnts) + "</div>" 
    'DEBUG: 
    If Trace.IsEnabled Then cGK_testSpot.Text += "<br>Button1_Click() ENDED</div>" 
End Sub 

입니다 나 오류가 발생하고 일단 이러한 문제가 해결되면 자바 스크립트 함수를 호출하여 같은 페이지에서 부모 또는 부모를 직접 호출하는 onclick이 필요합니다. 도와 줘서 고마워.

답변

2

Use OnClientClick 대신에 OnClick입니다.

<asp:button>은 서버 측 요소이므로 서버 측에서 잘 처리되는 자체 ASP.NET 특정 서버 측 특성을 갖습니다. 따라서 OnClick은 정규 HTML 요소의 관점에서 생각하는 것과 다릅니다. 컴파일러는 서버에서 해당 코드를 찾고 있으며 거기에 없습니다.

OnClientClick은 문자열로 처리되며 컴파일러에서 평가되지 않습니다. 출력에서 onclick HTML 특성을 방출하는 것을 제외하고는) HTML 처리를위한 클라이언트 측 코드가 있다고 가정합니다.

+0

감사합니다. 이 작동합니다. 몇 분 안에 대답을 받아 들일 수있게 될 것입니다. – njj56

0

OnClick을 onclick (소문자)으로 변경해보십시오. 태그에는 runat = "server"속성이 있기 때문에 서버 컨트롤이며 OnClick은 코드 뒤에 정의해야하는 서버 측 이벤트를 나타냅니다.

+0

대문자와 소문자는 중요하지 않습니다. onclientclick님께 서 david 님이 답변 했으므로이 문제를 해결했습니다. 도움을 주시거나 시간을내어 주셔서 감사합니다. – njj56

관련 문제