0

我的一个子页面中有一个按钮(rbtnDelete),我想使用JQuery在我的母版页中获取按钮删除的客户端 ID 我尝试了很多脚本,但我没有得到任何答案

注意:我正在使用 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的 ClientID,我会收到控件不存在的错误(因为它在子页面内)请帮我解决这个问题,或者给我解决方法从父页面访问子控件给我解决方案

提前致谢。

4

2 回答 2

0

分配给按钮的 AutoID 将在末尾保留原始服务器 ID,因此:http ://api.jquery.com/attribute-ends-with-selector/

此外,您可以使用 CssClass 属性为其指定一个唯一的类名,并使用 jQuery 通过该选择器获取它。

另外,您的母版页为什么要关心内容页?我认为这里需要对逻辑进行一些重新思考。

哦,第三种选择 - 创建一个函数,它将在内容页面本身中返回您需要的内容,例如:

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

并在需要时从母版页调用 if:

if(getMyButtonClientId) var theIdINeed = getMyButtonClientId();
于 2013-12-12T14:01:07.113 回答
0

你在使用 ASP.NET 4.0 吗?如果是这样,请将 rbtnDelete 的 ClientIDMode 设置为“静态”,然后您可以使用:-

$("#rbtnDelete").click();
于 2013-12-10T12:21:20.640 回答