2012-04-04 79 views
0
Protected Sub lnkContractors_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkContractors.Click 

     If Context.User.IsInRole("HOD") Then 
      lnkContractors.OnClientClick = "PopupCenter('Juniors.aspx', 'myPop1',820,500);" 
     ElseIf Context.User.IsInRole("Contractor") Then 
      lnkContractors.OnClientClick = "PopupCenter('Contractors.aspx', 'myPop1',820,500);" 
     End If 

    End Sub 

我在我的母版頁中有LinkBut​​ton,linkbutton是在UpdatePanel中。問題是,當我第一次點擊鏈接按鈕時,頁面只刷新,但彈出窗口無法打開。我必須點擊第二次才能打開彈出窗口。我的LinkBut​​ton在點擊事件中運行代碼只有點擊兩次時纔有效

function PopupCenter(pageURL, title, w, h) { 
      var left = (screen.width/2) - (w/2); 
      var top = (screen.height/2) - (h/2); 
      var targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); 
    } 
+0

嘗試將您的控件切換到常規按鈕,看看是否有幫助。 – TheGeekYouNeed 2012-04-04 09:21:44

+0

但常規的按鈕和超鏈接沒有OnClientClick屬性,它用於運行打開彈出窗口的JavaScript。 – StackTrace 2012-04-04 09:26:07

回答

1

您需要在頁面加載中聲明OnClientClick JavaScript函數。不在按鈕OnClick事件。由於添加客戶端功能到您的按鈕的決定需要在頁面加載時立即發生。

只需將您當前在按鈕單擊事件中使用的代碼移動到Page Load事件並查看會發生什麼。

+0

謝謝,現在就點擊第一次。 – StackTrace 2012-04-04 09:49:49

相關問題