2012-08-03 1 views
0

그래서이 업데이트 패널이 있는데 제대로 작동합니다.페이지를 다시로드하지 않고 ASP 양식 안의 버튼을 얻으려면 어떻게해야합니까?

<div> 
     <button id="foo" onclick="changeVal(this.id);">Send the ID "foo"...</button> 
    </div> 

<form runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server" > 
</asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Always"> 
<ContentTemplate> 

<div id="thethetext"> 
<asp:Literal ID="thetext" runat="server"></asp:Literal> 
</div> 

</ContentTemplate> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="myButton" EventName="Click"/> 
</Triggers> 
</asp:UpdatePanel> 



    **<!-- MOVE BUTTON (ID="foo") OVER HERE TO DISPLAY IT UNDER THE LITERAL -->** 

<asp:HiddenField ID="blah" runat="server" value="Initial Value"></asp:HiddenField> 
<asp:Button ID="myButton" Text="Get Concatenated..." OnClick="Test" runat="server"></asp:Button>  
</form> 

그러나 asp 양식 안에 (foo라는 ID로) 버튼을 이동하고 싶습니다. 그래서 그것은 리터럴 사용자 정의 컨트롤 아래에 표시됩니다 ...하지만 그렇게 할 경우 클릭 할 때마다 페이지가 다시로드됩니다. 그걸 피하기 위해 어쨌든 있습니까? 감사! .

당신의 버튼은 단지에 배치 한 양식을 제출하기 때문에 페이지를 다시로드

답변

1

당신의 버튼 값 button와 속성 type을 부여하므로 제출되지 않습니다

<div> 
<button type="button" id="foo" onclick="changeVal(this.id);">Send the ID "foo"...</button> 
</div> 

참조 : W3C HTML 4.01 Specification

+0

감사합니다. 매력처럼 작동했습니다. 나는 또한 "return false"를 onclick 함수에 추가하면 제대로 작동하는 것으로 밝혀졌습니다. – eastboundr

+0

@eastboundr, 아마도 그럴 수도 있지만, 자바 스크립트가없는 브라우저는 실수로 버튼을 눌러 실수로 양식을 제출할 수 있습니다. 'type = "button"'또한 그것을 방지합니다. :) – Bazzz

+0

감사합니다, 감사합니다! – eastboundr

관련 문제