2013-12-10 3 views
0

У меня есть кнопка (rbtnDelete) в одной из моей странице ребенка, и я хочу, чтобы получить клиент-ID кнопки Удалить в моей главной странице с помощью JQuery я пробовал много сценариев, но я не получил никакого ответаДоступ управления на ребенка Страница из MasterPage с помощью 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> 

Master Page Код

... 
... 
<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> 

Если я использую этот код, чтобы получить ClientID моей кнопки rbtnDelete, которая находится внутри ребенка Page, я получаю сообщение об ошибке, что контроль не существует (потому что это находится внутри страницы ребенка) Пожалуйста, помогите мне решить эту проблему, либо дать мне решение для Как получить доступ к дочерним элементам управления от родительской страницы ИЛИ Дай мне решение для этого

Спасибо заранее.

ответ

0

Вы используете ASP.NET 4.0? Если да, то установите ClientIDMode из rbtnDelete в «Static», то вы можете просто использовать: -

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

Он не дает ошибку, но не работает, это просто отбрасывает страницу только, не запуская событие delete Click (rbtnDelet) –

+0

Попробуйте добавить return false; после $ ("# rbtnDelete"). click(); – sh1rts

0

AutoID назначается кнопке будет сохранить исходный идентификатор сервера в конце, так: http://api.jquery.com/attribute-ends-with-selector/

Кроме того, вы можете использовать свойство CssClass, чтобы дать ему уникальное имя класса и получить его через этот селектор с помощью jQuery.

Кроме того, почему ваша главная страница должна заботиться о странице контента? Я думаю, что здесь нужно переосмыслить логику.

О, третий вариант - создать функцию, которая будет возвращать то, что вам нужно в самой странице контента, например:

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

и при необходимости, если звонить из главной страницы:

if(getMyButtonClientId) var theIdINeed = getMyButtonClientId(); 
Смежные вопросы