powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Использование нескольких ContentPlaceHolder-ов в мастер странице
6 сообщений из 6, страница 1 из 1
Использование нескольких ContentPlaceHolder-ов в мастер странице
    #37769981
dm-23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте !
Есть мастер страница, у которой в области формы размещено несколько элементов ContentPlaceHolder, пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<%@ Master Language="VB" Inherits="Avtoreg4.MainHeaderPage" Codebehind="MainHeaderPage.master.vb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="CSS/Style.css" rel="stylesheet" type="text/css" />
    <link href="CSS/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
    <script src="Script/jquery-1.6.2.min.js" type="text/javascript"></script>
    <script src="Script/jquery-ui-1.8.14.custom.min.js" type="text/javascript"></script>
    <script src="Script/jquery.validate.min.js" type="text/javascript"></script>
    <script src="Script/jquery.ui.datepicker-ru.js" type="text/javascript"></script>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <script type="text/javascript">
        $(document).ready(function () {
            $(".dtpicker").datepicker();
            $("#accordFilter").accordion({
                collapsible: true
            });
        });
    </script>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    
    <div id="NameReport">
        <asp:ContentPlaceHolder ID="NameReportContent" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    <div id="accordFilter" style="margin-top:15px; width:50%;">
        <h3><a href="#" style="color:#284E98">Условия выборки:</a></h3>
        <div id="divFilterContent">
        <asp:ContentPlaceHolder id="FilterContent" runat="server">
        
        </asp:ContentPlaceHolder>
        </div>
    </div>
    
    <div id="divMiddlePanel">
        <asp:ContentPlaceHolder ID="CPanelContent" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    
    <div id="divGridContent">
        <asp:ContentPlaceHolder ID="GridContent" runat="server">
        
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>


Созданная на ее основе страница:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/MainHeaderPage.master" CodeBehind="Test_Delete.aspx.vb" Inherits="Avtoreg4.Test_Delete" %>


<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="NameReportContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="FilterContent" runat="server">

</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="CPanelContent" runat="server">
    <asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="GridContent" runat="server">
    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
    </asp:GridView>
</asp:Content>


Вроде все просто, однако таблица GridView1 не видит источника SQLDataSource1, который находится в другой секции. Пробовал ставить ClientIDMode="static", эффекта не дает. Понимаю что можно перенести все в одну секцию, или организовать присваивание в CodeBehind, НО хочется именно так, или может кто сможет объяснить почему это невозможно, если это так.
...
Рейтинг: 0 / 0
Использование нескольких ContentPlaceHolder-ов в мастер странице
    #37770064
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
...
Рейтинг: 0 / 0
Использование нескольких ContentPlaceHolder-ов в мастер странице
    #37770471
dm-23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basedataboundcontrol.datasourceid.aspx

и при чем тут связывание ? связать источник не проблема, проблема в том что серверные контролы одного asp:Content не видят контролы другого. И не обязательно источник данных, Можно скажем в источник - SQLDataSource1 добавить параметры на Select, ControlParameter, которые будут ссылаться на другие серверные элементы и, если они все находятся в одном asp:Content, все прекрасно, если в разных не работат, выпадает в ошибку с пометкой что контрол с указанным ID не найден....
...
Рейтинг: 0 / 0
Использование нескольких ContentPlaceHolder-ов в мастер странице
    #37770652
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
dm-23связать источник не проблема, проблема в том что серверные контролы одного asp:Content не видят контролы другогоперечитай еще раз
...
Рейтинг: 0 / 0
Использование нескольких ContentPlaceHolder-ов в мастер странице
    #37770905
dm-23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.dm-23связать источник не проблема, проблема в том что серверные контролы одного asp:Content не видят контролы другогоперечитай еще раз

это намек на:
Код: plaintext
1.
<My:UserControl DataSourceID=<%# MyObjectDataSource.UniqueID %> RunAt="Server" />

? Так то оно работает, аналогично можно было сделать в коде на page_load : MyUserControlID.DataSourceID=MyObjectDataSource.UniqueID;. Я так понимаю что ClientIDMode="static" влияет только на вывод ID на клиенте и не используется на стороне сервера, к тому-же если у компонента нет отображения на стороне клиента, как у SQLDataSource, такого атрибута-ClientIDMode у него не будет, а в процессе исполнения на стороне сервера ID формируются свои, для внутренних связей..., ладно, спасибо и на этом.
...
Рейтинг: 0 / 0
Использование нескольких ContentPlaceHolder-ов в мастер странице
    #37770921
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
dm-23Так то оно работаетвот и прекрастно
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Использование нескольких ContentPlaceHolder-ов в мастер странице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]