javascript
  • asp.net
  • 2010-10-06 45 views 0 likes 
    0

    我在切換ASP.NET - 編輯的CommandName上LinkBut​​ton的使用Javascript

    <asp:Repeater ID="rptPageLinks" runat="server"><ItemTemplate> 
        <asp:LinkButton ID="lnkNewPage" runat="server" Text='<%# Eval("Page") %>' 
        OnCommand="SomeEventHandler" CommandArgument='<%# Eval("Page") %>' CommandName="Redirect" 
        OnClientClick="return confirm('Do you want to save your chanes before you navigate to a new page?');" /> 
    </ItemTemplate></asp:Repeater> 
    

    我希望能夠做的是從的OnClientClick結果傳遞到網頁上的中繼器的一系列鏈接按鈕EventHandler,理想情況下通過改變CommandName(即,如果他們在確認上點擊「是」,則將CommandName改變爲「SaveAndRedirect」,如果他們點擊「否」則保持爲「重定向」)。

    任何人都可以幫忙嗎?如果可以,謝謝。

    回答

    3

    不幸的是,你問的是不可能的那種方式。 OnCommand是asp控件的ASP.Net服務器端屬性。在客戶端渲染完成後,您只能使用客戶端的html進行操作。

    但是,解決方案是將確認對話框的值保存到您的命令事件的隱藏字段中,然後在您的命令中讀取該隱藏字段。要做到這一點,我建議是這樣的:

    <script type="text/javascript"> 
        function confirmSave() { 
         document.getElementById('confirmChoice').value=confirm("Do you want to save your changes..."); 
        } 
    </script> 
    <input type='hidden' id='confirmChoice' runat="server" /> 
    

    然後,後面呼籲命令事件代碼的頁面中,您可以訪問被設置成隱藏字段的值。

    +1

    乾杯。我建議任何人使用這種技術使用document.getElementById('<%= confirmChoice.ClientID%>')。值是安全的。 – sharepointmonkey 2010-10-06 12:49:45

    相關問題