2012-06-13 3 views
1

올해는 내년과 내년에 두 개의 파일이 있고 링크 버튼은 다른 파일을 가리켜 야합니다. 그러나 문제는 새로운 창에서 파일을 열고 자하는 것입니다. 그래서 서버 측 ASP에 대한여러 링크 옵션이있는 링크 버튼

코드에서 자바 스크립트를 호출하기로 결정 : 그것은 잘 작동 자바 스크립트 코드

function Guidelink2013() { 
     window.open('XXX1.pdf', '', 'width=750,height=900'); return false; 
} 
function Guidelink2012() { 
     window.open('XXX2.pdf', '', 'width=750,height=900'); return false; 
} 

코드

protected void guide_click(object sender, EventArgs e) 
    { 
     if (Session["YearLastLicence"] != null) 
     { 
      if (int.Parse(Session["YearLastLicence"].ToString()) < DateTime.Now.Year) 
      { 
       ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:Guidelink2012();", true); 
      } 
      else ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:Guidelink2013();", true); 

     } 
    } 

뒤에

<asp:LinkButton ID="guide" runat="server" Text="XXX" OnClick="guide_click"> 

하는 LinkButton 때 제 1 개구 페이지를 새로 고치면 팝업 창이 자동으로 열립니다. 어떤 생각? 감사합니다

+1

pdf 이름을 제외하고 거의 동일한 두 가지 함수를 작성하는 대신 javascript 함수의 매개 변수로 pdf 이름을 보내지 마십시오. 이렇게하면 4 ~ 5 줄의 코드를 절약 할 수 있습니다. – Bastardo

답변

0

링크로드 버튼의 클릭 이벤트가 아닌 페이지로드에 코드를 작성해야합니다. 그래서 페이지로드에

,

if (Session["YearLastLicence"] != null) 
     { 
      if (int.Parse(Session["YearLastLicence"].ToString()) < DateTime.Now.Year) 
      { 
       guide.Attrbuites.Add("onclick","javascript:Guidelink2012();return false;"); 
      } 
      else { 
guide.Attrbuites.Add("onclick" "javascript:Guidelink2013();return false;"); 

     } 
} 

는 또한의 LinkButton에서 클릭 이벤트를 제거 할 수 있습니다.

+0

은 "속성"이어야합니다. 작동합니다. 왜 onclick 이벤트에서 제대로 작동하지 않았는지를 조금 더 설명 할 수 있습니까? – pita

+0

onclick 이벤트에서 클라이언트의 페이지로드 중에 실행할 이벤트를 등록하는 ClientScript.RegisterStartupScript를 수행하고있었습니다. 그래서 당신이 링크 버튼을 클릭하자마자 포스트 백하고 스크립트를 실행하지만 나중에 포스트 백은이 정보를 가지지 않을 것이고 popoup를 열지 않을 것입니다. 희망이 의미가 있습니다. –

+0

답장으로 답장을 보내면 다른 사람들이 유용하다고 생각할 수 있습니다! :) –