我的一个子页面中有一个(rbtnDelete)按钮, 我想使用 JQuery 在我的母版页中获取按钮Delete的 client-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,它位于子页面内,我收到的错误是控件不在那里(因为它在子页面内) 请帮我解决这个问题,或者给我解决方案如何从父页面访问子控件或者为我提供解决方案
先谢谢。
答案 0 :(得分:0)
您使用的是ASP.NET 4.0吗?如果是这样,将rbtnDelete的ClientIDMode设置为“Static”,那么你可以使用: -
$("#rbtnDelete").click();
答案 1 :(得分:0)
分配给按钮的AutoID会将原始服务器ID保留在最后,因此:http://api.jquery.com/attribute-ends-with-selector/
此外,youu可以使用CssClass属性为其提供唯一的类名,并通过jQuery通过该选择器获取它。
另外,为什么您的母版页需要关注内容页面?我认为这里需要重新思考逻辑。
哦,第三个选项 - 创建一个能够在内容页面中返回所需内容的函数,例如:
function getMyButtonClientId() { /* get what you need */ }
并在需要时从主页面调用:
if(getMyButtonClientId) var theIdINeed = getMyButtonClientId();