Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Доступ к объектам UserControl / 13 сообщений из 13, страница 1 из 1
07.05.2013, 23:29
    #38251053
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
Всем добрый вечер!
не могу понять, почему из кода aspx-странички не могу достучаться до объектов своего usercontrol
пишет ошибку "... is inaccessible due to its protection level"

Вот собственно сам контрол:

Код: 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.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UC_EDIT_FROM.ascx.cs" Inherits="Test_Grid.UC_EDIT_FORM" %>
    <body>
    <div id="dvEditForm" runat="server">
        <asp:Table ID="Table1" runat="server" HorizontalAlign="Center" BorderStyle="Solid" BorderWidth="1" BorderColor="Black" width="100%" BackColor="LightGray">
        <asp:TableCell>
            <asp:TextBox Visible="false"  ID="txtId" runat="server"></asp:TextBox>
            <asp:TextBox CssClass="pole" ID="txtFirstName" runat="server"></asp:TextBox>
        </asp:TableCell>
        <asp:TableCell>
            <asp:TextBox CssClass="pole" ID="txtLastName" runat="server"></asp:TextBox>
        </asp:TableCell>
        <asp:TableCell>
            <asp:TextBox CssClass="pole" ID="txtPhone" runat="server"></asp:TextBox>
        </asp:TableCell>
        <asp:TableCell>
            <asp:TextBox CssClass="pole" ID="txtSalary" runat="server"></asp:TextBox>
        </asp:TableCell>
        <asp:TableCell>
            <asp:TextBox CssClass="pole" MaxLength="10" ID="txtBirthDate" runat="server"></asp:TextBox>
        </asp:TableCell>
        <asp:TableCell>
            <asp:button ID="btnSave" Width="90" runat="server" text="Сохранить" onclick="btnSave_Click" />
        </asp:TableCell>
        </asp:TableRow>
        </asp:Table>
    </div>
    </body>



вот так он подключен:
Код: plaintext
1.
2.
3.
<%@ Register src="UC_EDIT_FROM.ascx" tagname="UCEF" TagPrefix="uctrl" %>

<uctrl:UCEF ID="ucEditForm" runat="server"></uctrl:UCEF>



и вот на таких вещах ошибка

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
        private void setDefaultValues()
        {
            ucEditForm.txtId.Text = "";
            ucEditForm.txtFirstName.Text = "";
            ucEditForm.txtLastName.Text = "";
            ucEditForm.txtPhone.Text = "";
            ucEditForm.txtSalary.Text = "";
            ucEditForm.txtBirthDate.Text = "";
        }
...
Рейтинг: 0 / 0
07.05.2013, 23:34
    #38251058
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
J_Mnemonicи вот на таких вещах ошибкаа Вы в этих вещах нажмите правой педалью на txtId и выберите Go To Definition
...
Рейтинг: 0 / 0
07.05.2013, 23:40
    #38251061
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
Паганель, примного благодарен!
И только щас дошло, что наверно "некорректно" обращаться напрямую к объектам контрола?
А можно в продолжении темы вопрос?
Есть у меня например в код-бехайнд этого юзер-контрола некие функции. публичные...
Как мне из моей asp-страницы их вызывать?
...
Рейтинг: 0 / 0
07.05.2013, 23:42
    #38251062
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
как публичные функции любого другого мембера
...
Рейтинг: 0 / 0
07.05.2013, 23:48
    #38251065
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
Лишний раз убеждаюсь, что несколько минут общения с умным человеком могут заменить часы рысканья по интернету.
...
Рейтинг: 0 / 0
08.05.2013, 00:14
    #38251084
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
А можно ещё сюда вопрос? На тему - "а как принято?" Вот есть у меня мой юзерконтрол - форма редактирования\добавления.
Правильно будет реализовать механизм сохранения (тоесть коннект к базе и т.п.) прямо в его коде? Или же такие вещи обычно реализуются на вызывающей aspx страничке, а контрол лишь должен быть формой заполнения?
Ну тоесть я понимаю что можно - как хочешь. Но как будет правильно с точки зрения ООП?
...
Рейтинг: 0 / 0
08.05.2013, 00:44
    #38251098
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
Паганель, а наоборот как? Из кода контрола к функциям странички?
пробую так
Код: c#
1.
Step_3.bindingGrid(); 


ругается на нестатичный метод (An object reference is required for the non-static field, method, or property 'Test_Grid.Step_3.bindingGrid()')

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        public void bindingGrid()
        {
            DataTable aDT = BusinessLogic.GetGridData(SrtExpression, SrtDirection.ToString());
            if (aDT.Rows.Count == 0)
            {
                aDT.Rows.Add(aDT.NewRow());
                gvFirstGrid.DataSource = aDT;
                gvFirstGrid.PageIndex = PageIndex;
                gvFirstGrid.DataBind();
            }
            else
            {
                gvFirstGrid.DataSource = aDT;
                gvFirstGrid.PageIndex = PageIndex;
                gvFirstGrid.DataBind();
            }
        }
...
Рейтинг: 0 / 0
08.05.2013, 00:48
    #38251100
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
...
Рейтинг: 0 / 0
08.05.2013, 00:53
    #38251103
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
J_MnemonicА можно ещё сюда вопрос? На тему - "а как принято?" Вот есть у меня мой юзерконтрол - форма редактирования\добавления.
Правильно будет реализовать механизм сохранения (тоесть коннект к базе и т.п.) прямо в его коде? Или же такие вещи обычно реализуются на вызывающей aspx страничке, а контрол лишь должен быть формой заполнения?
Ну тоесть я понимаю что можно - как хочешь. Но как будет правильно с точки зрения ООП?в проектах, где я участвовал, для этого отдельный слой (уже был везде до меня создан, я ни одного не начинал по сути)

ЗЫ а как правильно - я не знаю
ЗЗЫ щас вообще модно MVC...
...
Рейтинг: 0 / 0
08.05.2013, 01:00
    #38251104
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
автор http://msdn.microsoft.com/en-us/library/system.web.ui.control.page(v=vs.100).aspx


что то видимо поздно совсем... раза три перечитал статью, но не так и не нашёл в ней ответ на мой вопрос...
...
Рейтинг: 0 / 0
08.05.2013, 10:14
    #38251303
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
Код: c#
1.
((Step_3)Page).bindingGrid();

хотя обычно делают не так, а реализовывают в классе Step_3 какой-то интерфейс, и уже в контроле приводят Page не к конкретному классу, а к этому интерфейсу
или вообще перепридумывают архитектуру так, чтобы контролу про страницу даже знать не надобилось
...
Рейтинг: 0 / 0
08.05.2013, 10:18
    #38251309
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
Паганельпридумывают архитектуру так, чтобы контролу про страницу даже знать не надобилось+1

этой архитектуре сто лет в обед
...
Рейтинг: 0 / 0
08.05.2013, 12:24
    #38251574
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к объектам UserControl
Паганель((Step_3)Page).bindingGrid();


ммм... тоесть приводим текущую страницу к типу родительской и дальше вызывают всё что нужно... прикольно! Спасибо!

skyANAэтой архитектуре сто лет в обед


Пожалуйста, не моли бы вы показать как это делается?

Я пока что не волшебник, а всего лишь учусь (с) (полторы недели в C#, asp и ООП)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Доступ к объектам UserControl / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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