2011-08-02 5 views
1

동적 인 data.user 컨트롤이있는 사용자 컨트롤이있는 웹 페이지의 일부를 새로 고쳐야하는 프로젝트에서 작업하고 있습니다. 사용자 컨트롤은 텍스트 파일에서 데이터를로드합니다. 이 텍스트 파일은 자주 업데이트됩니다. javascript를 사용하는 전체 페이지가 아닌 사용자 정의 컨트롤을 새로 고쳐야합니다. 나는 다음을 시도했지만 그것은 나를 위해 일하지 않았다.자바 스크립트에서 업데이트 패널 내에서 사용자 정의 컨트롤 새로 고침

<%@ Page Language="C#" %> 

<%@ Register src="ucTest.ascx" tagname="ucTest" tagprefix="uc1" %> 

<script runat="server"> 

    void button_Click(object sender, EventArgs e) 
    { 
     lbltest.Text = "Refreshed by server side event handler at " + DateTime.Now + ".<br>"; 
    } 

</script> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>How to update an UpdatePanel with JavaScript</title> 

    <script type="text/javascript"> 
    function UpdPanelUpdate() 
    { 
     __doPostBack("<%= button.ClientID %>",""); 
    } 
    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <div> 


    <a href="javascript:UpdPanelUpdate()">Update the Panel</a> 

     <asp:Button ID="button" runat="server" OnClick="button_Click" style="display:none;"/> 

      <asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional"> 
        <ContentTemplate> 
         <uc1:ucTest ID="ucTest1" runat="server" /> 
         <asp:Label ID="lbltest" runat="server"></asp:Label> 
        </ContentTemplate> 
        <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="button" EventName="Click" /> 
        </Triggers> 
      </asp:UpdatePanel> 
     </div> 
    </form> 
</body> 
</html> 

내 사용자 컨트롤입니다.

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ucTest.ascx.cs" Inherits="ucTest" %> 
<table border="3"> 
     <tr> 
      <td> 
        <% Response.WriteFile("TextFile.txt"); %> 
      </td> 
     </tr> 
</table> 

여기서 자주 변경되는 일부 정보입니다.

모든 도움을 주시면 대단히 감사하겠습니다.

답변

2

더 간단하게하려면 비동기 트리거를 넣지 않아도되도록 UpdatePanel에 숨겨진 버튼을 넣을 수 있습니다. 먼저 버튼을 계속 표시하고 업데이트 패널이 새로 고침되는지 확인합니다. 그렇다면 버튼을 숨길 수 있습니다.

다음 부분은 클릭 이벤트를 시뮬레이트하여 버튼을 트리거합니다. 크로스 브라우저 솔루션에서 jquery와 같은 라이브러리를 사용하도록 제안합니다. 예를 들어,

function UpdPanelUpdate() 
{ 
    $("<%= button.ClientID %>").click(); 
} 

작동하는 코드 __doPostBack("<%= button.ClientID %>","");를 들어, 거짓으로 버튼의 UseSubmitBehavior 속성을 설정하려고한다.

관련 문제