Доступ к управлению страницей содержимого с главной страницы с помощью javascript

Я хочу получить доступ к элементу управления комбинированным списком Ajax страницы содержимого на главной странице, а также с помощью Javascript.

Я пробовал то же самое, используя contentpageholder страницы содержимого, но также одна из проблем, с которыми я сталкиваюсь, заключается в том, что существует около 10 страниц содержимого, поэтому, когда открывается какая-либо другая страница, например Page 1, код показывает исключение ссылки на объект как contentplaceholder не совпадает.

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

Что я делал до сих пор:

function accessControlContentPage() {
var txtCont = document.getElementById("Page.Master.FindControl('ContentPlaceHolder1').FindControl('txtContent')").value;
var text=txtCont;
}

Но это не работает. Любая помощь с тем же?


person JulyOrdinary    schedule 23.05.2013    source источник
comment
После того, как ответ предоставлен клиенту, бесполезно думать о главных страницах и страницах содержимого. Это единая веб-страница.   -  person deostroll    schedule 01.04.2014


Ответы (2)


Предлагаемый подход состоит в том, чтобы добавить определенные элементы управления заполнителем контента для таких скриптов, которые будут размещены на веб-странице, которую вы визуализируете. Взгляните на следующую разметку главной / страницы содержимого:

Главная страница:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApp.PageMethods.Site1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">        
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

Есть заполнитель содержимого head, в котором я должен написать несколько js-функций, пытающихся получить доступ к раскрывающемуся списку в другом заполнителе содержимого ContentPlaceHolder1.

Разметка страницы содержимого:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApp.PageMethods.WebForm3" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script>
        function foo() {
            var ddl = document.getElementById('<%= DropDownList1.ClientID %>');
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
</asp:Content>

Здесь мне не нужно было так сильно беспокоиться о попытках получить доступ к элементам управления, вложенным в ContentPlaceHolderID.

В качестве альтернативы, если у вас нет этой опции / свободы, вы всегда можете написать что-то следующим образом на самой главной странице:

var d = document.getElementById('<%= this.ContentPlaceHolder1.FindControl("DropDownList1").ClientID %>');
person deostroll    schedule 01.04.2014
comment
«ASP.site_master» не содержит определения для «ContentPlaceHolder1», и не может быть найден метод расширения «ContentPlaceHolder1», принимающий первый аргумент типа «ASP.site_master» - person JulyOrdinary; 01.04.2014
comment
Раньше это приходило, и поэтому этот способ до сих пор не работает. :( - person JulyOrdinary; 01.04.2014
comment
Об этом следовало упомянуть в сообщении. Можете ли вы заглянуть в файл designer.cs главной страницы и проверить, существует ли ContentPlaceHolder1? - person deostroll; 01.04.2014
comment
Подождите, дайте мне попробовать, и я приму ответ, если это сработает. :) - person JulyOrdinary; 01.04.2014

Доступ к управлению страницей содержимого с главной страницы с помощью javascript

мы можем найти идентификатор div или идентификатор управления страницы содержимого на главной странице в asp.net

Пояснение к странице содержания: - не забудьте упомянуть runat = "server",

ContentPlaceHolderID = "content_body" // наблюдение,

main_content - идентификатор тега div.

MasterPage.master

            var d = document.getElementById('<%= this.content_body.FindControl("main_content").ClientID %>');

Делайте все, что хотите, с d

Спасибо

person Dilip Kumar Choudhary    schedule 30.01.2020