Свойства пользовательского элемента управления? - PullRequest
0 голосов
/ 06 ноября 2010

Могу ли я создать элемент управления, который в основном действует "как MasterPage"?

Я хочу сказать, что у меня есть сетка, подобная этой, на нескольких страницах:

<asp:UpdatePanel ID="AnnouncementsPanel" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        <asp:GridView ID="AnnoucementsGrid" runat="server" AutoGenerateColumns="false" DataKeyNames="Id" >
            <Columns>
                <asp:BoundField DataField="Title" HeaderText="Title" />
                <asp:BoundField DataField="Created" HeaderText="Date" />
                <asp:BoundField DataField="Modified" HeaderText="Last Modified" />
                <asp:ButtonField ButtonType="Button" Text="Process" CommandName="Process" />
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>

Я хотел бы создать элемент управления, который обрабатывает большинство кода, но в каждом случае мне нужно декларативно объявлять столбцы для сетки.


Есть ли способ создать такой элемент управления?

<uc:CrudGrid ID="AnnouncementsCrud" runat="server">
    <Columns>
        <asp:BoundField DataField="Title" HeaderText="Title" />
        <asp:BoundField DataField="Created" HeaderText="Date" />
        <asp:BoundField DataField="Modified" HeaderText="Last Modified" />
        <asp:ButtonField ButtonType="Button" Text="Process" CommandName="Process" />
    </Columns>
</uc:CrudGrid>

или событие лучше:

<uc:CrudGrid ID="AnnouncementsCrud" runat="server">
    <Columns>
        <asp:BoundField DataField="Title" HeaderText="Title" />
        <asp:BoundField DataField="Created" HeaderText="Date" />
        <asp:BoundField DataField="Modified" HeaderText="Last Modified" />
    </Columns>
</uc:CrudGrid>

Может быть, нужно назвать тег «Поля», но при этом можно уронить кнопку, чтобы ее можно было использовать в коде позади UC?

Огромная любовь к тому, кто имеет положительный ответ на этот вопрос <3 </p>

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

Нашел точное решение, которое я искал:

    [DefaultValue((string)null)]
    [Editor(typeof(System.Web.UI.Design.WebControls.DataControlFieldTypeEditor), typeof(UITypeEditor))]
    [PersistenceMode(PersistenceMode.InnerProperty)]
    public DataControlFieldCollection Columns
    {
        get { return Grid.Columns; }
    }

таким образом я могу выставлять столбцы из сетки в своем собственном пользовательском элементе управления и редактировать поля из разметки, сохраняя общие функции в моем UC

0 голосов
/ 06 ноября 2010

Зависит от того, насколько позитивно вы хотите, чтобы это было :-) Вы всегда можете создать свой собственный контроль, чтобы сделать это.Это один из вариантов.

Другой вариант - создать вспомогательный объект, который присоединяется к сетке, и хранить каждую сетку отдельно.

Третий вариант - создать пользовательский элемент управления с общим кодом,и программно добавить столбцы в сетку с помощью пользовательского элемента управления.

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...