2013-12-10 27 views
0

我在子頁面之一, 有一個按鈕(rbtnDelete),我想按鈕客戶端ID刪除我的母版頁使用的子頁控制JQuery的 我試了很多劇本,但我沒有得到任何回答訪問從母版使用jQuery

注:我使用Telerik的radbutton

客戶端頁面代碼:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterLogin/Logistic.Master" AutoEventWireup="true" 
CodeBehind="CreateRunsheet.aspx.cs" Inherits="DomesticLogisticsManagement.Runsheet.CreateRunsheet" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
... 
... 

<telerik:RadButton ID="rbtnDelete" runat="server" Visible="false" Text="Delete" Skin="Windows7" OnClick="rbtnDelete_Click" OnClientClicking="CustomRadWindowConfirm" > 
</telerik:RadButton> 
... 
... 
</asp:Content> 

母版頁編號

... 
... 
<script type="text/javascript"> 
    function CustomRadWindowConfirm(sender, args) { 
      //Open the window 
      $find("<%=confirmWindow.ClientID %>").show(); 
      //Focus the Yes button 
      $find("<%=btnYes.ClientID %>").focus(); 
      //Cancel the postback 
      args.set_cancel(true); 
     } 
     function YesOrNoClicked(sender, args) { 
      var oWnd = $find("<%=confirmWindow.ClientID %>"); 
      oWnd.close(); 
      if (sender.get_text() == "Yes") { 
       $find("<%=rbtnDelete.ClientID %>").click(); 
      } 
     } 

</script> 
<div> 
     <asp:Label ID="Label3" runat="server" EnableViewState="false" ForeColor="Green"></asp:Label> 
     <telerik:RadWindow ID="confirmWindow" runat="server" VisibleTitlebar="false" VisibleStatusbar="false" 
      Modal="true" Behaviors="None" Height="150px" Width="300px"> 
      <ContentTemplate> 
       <div style="margin-top: 30px; float: left;"> 
        <div style="width: 60px; padding-left: 15px; float: left;"> 
          <img src="img/ModalDialogAlert.gif" alt="Confirm Page" /> 
        </div> 
        <div style="width: 200px; float: left;"> 
          <asp:Label ID="lblConfirm" Font-Size="14px" Text="Are you sure you want to Delete ?" 
           runat="server"></asp:Label> 
          <br /> 
          <br /> 
          <telerik:RadButton ID="btnYes" runat="server" Text="Yes" AutoPostBack="false" OnClientClicked="YesOrNoClicked"> 
           <Icon PrimaryIconCssClass="rbOk"></Icon> 
          </telerik:RadButton> 
          <telerik:RadButton ID="btnNo" runat="server" Text="No" AutoPostBack="false" OnClientClicked="YesOrNoClicked"> 
           <Icon PrimaryIconCssClass="rbCancel"></Icon> 
          </telerik:RadButton> 
        </div> 
       </div> 
      </ContentTemplate> 
     </telerik:RadWindow> 
</div> 
.... 
.... 
</form> 
</body> 
</html> 

如果我使用此代碼,讓我的按鈕rbtnDelete這是子頁面內的客戶端ID,我得到了控制誤差是不存在(因爲它是孩子頁面內) 請幫我解決這個問題,要麼給我的解決方案如何訪問子控件從父頁 OR 給我這個

0123解決方案

在此先感謝。

回答

0

您使用的是ASP.NET 4.0嗎?如果是的話,設置rbtnDelete的的ClientIDMode爲「靜態」,那麼你可以使用: -

$("#rbtnDelete").click(); 
+0

它沒有給出錯誤,但沒有工作,它只是回發頁面只發射刪除點擊(rbtnDelet)事件 –

+0

嘗試添加返回false;在$(「#rbtnDelete」)之後。click(); – sh1rts

0

分配給該按鈕的自動識別將保持原來的服務器ID在年底,所以:http://api.jquery.com/attribute-ends-with-selector/

此外,youu可以使用CssClass屬性爲其提供唯一的類名,並通過該選擇器使用jQuery來獲取它。

此外,您的母版頁爲什麼要關心內容頁?我認爲這裏需要重新思考邏輯。

哦,第三個選擇 - 創建一個函數,將返回在內容頁面本身需要的東西,如:

function getMyButtonClientId() { /* get what you need */ } 

,並在需要的時候,如果從主控頁面中調用:

if(getMyButtonClientId) var theIdINeed = getMyButtonClientId();