Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Использование нескольких ContentPlaceHolder-ов в мастер странице / 6 сообщений из 6, страница 1 из 1
25.04.2012, 10:52
    #37769981
dm-23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование нескольких ContentPlaceHolder-ов в мастер странице
Здравствуйте !
Есть мастер страница, у которой в области формы размещено несколько элементов 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
25.04.2012, 11:20
    #37770064
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование нескольких ContentPlaceHolder-ов в мастер странице
...
Рейтинг: 0 / 0
25.04.2012, 13:45
    #37770471
dm-23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование нескольких ContentPlaceHolder-ов в мастер странице
. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basedataboundcontrol.datasourceid.aspx

и при чем тут связывание ? связать источник не проблема, проблема в том что серверные контролы одного asp:Content не видят контролы другого. И не обязательно источник данных, Можно скажем в источник - SQLDataSource1 добавить параметры на Select, ControlParameter, которые будут ссылаться на другие серверные элементы и, если они все находятся в одном asp:Content, все прекрасно, если в разных не работат, выпадает в ошибку с пометкой что контрол с указанным ID не найден....
...
Рейтинг: 0 / 0
25.04.2012, 14:54
    #37770652
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование нескольких ContentPlaceHolder-ов в мастер странице
dm-23связать источник не проблема, проблема в том что серверные контролы одного asp:Content не видят контролы другогоперечитай еще раз
...
Рейтинг: 0 / 0
25.04.2012, 16:12
    #37770905
dm-23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование нескольких ContentPlaceHolder-ов в мастер странице
.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
25.04.2012, 16:19
    #37770921
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование нескольких ContentPlaceHolder-ов в мастер странице
dm-23Так то оно работаетвот и прекрастно
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Использование нескольких ContentPlaceHolder-ов в мастер странице / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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