2013-11-27 60 views
1

我有一個ASP按鈕。點擊它後,我使用JavaScript進行一些驗證後打開彈出窗口。OnClientClick回發後第一次點擊按鈕時不觸發

<asp:Button ID="btnHistory" runat="server" Text="History" Enabled="true" Width="100pt" OnClientClick="ShowHistoryPopup()" meta:resourcekey="btnHistory" OnInit="btnHistory_Init"/> 

function ShowHistoryPopup() { 

       var age = $get("<%= txtSomeTextBox.ClientID %>"); 
       var str = ""; 
       if (Validate(age)) { 
        str = 'ClService.aspx?id=' + 'Null,' + age.value; 
        window.open(str); 
       } 
       else { 
        return false; 
       } 
      } 

我有一個單選按鈕。根據選定的索引,我需要啓用禁用歷史記錄按鈕。單選按鈕有3個選項,第3個選項頁回發發生。我只需要在第一個選項上保持按鈕啓用。我已經在Java腳本和OnPreRender事件上的一些代碼的幫助下實現了這個邏輯(用於回發情況)。

現在我面對的問題是,如果我選擇選項1或2並單擊歷史記錄按鈕,OnClientCLick事件正在觸發。但是,如果我選擇選項3(回發),然後回到選項1,則onClientCLick不會第一次觸發。但點擊歷史按鈕第二次它的工作正常。任何人有這個問題的建議或解決方案?

+0

使用更新面板? –

回答

0

如果我理解你的問題,我認爲發生了什麼事是你回來後發佈的歷史按鈕點擊哪個不是你想要的(因爲沒有點擊處理程序)。使用此代碼對我的作品:

<asp:RadioButton ID="RadioButton1" runat="server" GroupName="Radio1" /> 
<asp:RadioButton ID="RadioButton2" runat="server" GroupName="Radio1" /> 
<asp:RadioButton ID="RadioButton3" runat="server" AutoPostBack="True" GroupName="Radio1" /> 

<asp:Button ID="btnHistory" runat="server" Text="History" Enabled="true" Width="100pt" OnClientClick="ShowHistoryPopup();return false;" meta:resourcekey="btnHistory" /> 

    <script type="text/javascript"> 
     function ShowHistoryPopup() { 
       alert("Here"); 
      } 
    </script> 

所有我加的是ShowHistoryPopup();

return false;後另外,我使用的警報這裏演示的目的,在現實中,我們確實應該使用console.log('Show my message');

相關問題