使用Jquery从MasterPage访问子页上的控件
Access a control on the Child Page from MasterPage using Jquery
我的一个子页面中有一个按钮(rbtnDelete),我想使用JQuery在主页中获得Delete按钮的客户端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>
如果我使用此代码获取位于子页内的按钮的ClientIDrbtnDelete,则会出现控件不存在的错误(因为它在子页内)请帮我解决这个问题,或者给我如何从父页访问子控件的解决方案或者给我这个的解决方案
提前感谢。
您正在使用ASP.NET 4.0吗?如果是,请将rbtnDelete的ClientIDMode设置为"静态",然后您可以使用:-
$("#rbtnDelete").click();
分配给按钮的AutoID将在末尾保留原始服务器ID,因此:http://api.jquery.com/attribute-ends-with-selector/
此外,您可以使用CssClass属性为其提供一个唯一的类名,并使用jQuery通过该选择器获取它。
此外,为什么您的母版页应该关心内容页?我认为这里需要重新思考一下逻辑。
哦,第三个选项-创建一个函数,该函数将返回内容页面本身所需的内容,例如:
function getMyButtonClientId() { /* get what you need */ }
并在需要时从主页调用:
if(getMyButtonClientId) var theIdINeed = getMyButtonClientId();
相关文章:
- 使用Jquery从MasterPage访问子页上的控件
- 使用 jquery 访问 Asp.net 控件(所有选项)
- 如何使用 <%=Control.ClientId%> 访问 javascript 中用户控件中的控件
- 从 aspx 页中的用户控件访问 ID
- 从父控制器 AngularjS 访问 Popup 控件
- 我们是否可以访问 UA 应该为 HTML5 表单 API 维护的无效控件列表
- 访问 Javascript/JQuery 函数中的控件
- 从iframe中访问父select2控件元素并设置其值
- 需要在加载时访问 java 脚本中的 asp.net 服务器控件
- 如何在没有“runat=server”的情况下访问 C# 代码中的 HTML 控件
- 如何使用 javascript 函数通过 ID 访问 asp 控件
- 如何访问位于同一文件中 js 中的数据列表中的控件 ID
- 如何通过客户端上的 JSProperties 访问 DevExpress ASPx 控件
- 如何在 JavaScript 中访问和设置服务器控件的值
- 使用 javascript 从内容页访问母版页控件
- 使用客户端访问位于列的页脚模板中的特定控件
- 隐藏在用户控件中,无法在客户端访问它
- TFS 2012 Web 访问工作项自定义控件
- 如何在代码隐藏中访问控件的值,该值由 JavaScript 动态创建
- 从用户控件访问aspx值