2012-06-14 4 views
1

У меня есть две ASPX страницы:Использование же DataGridView на нескольких страницах

  1. DashboardPreview.aspx: Это домашняя страница. Он показывает 5 верхних панелей в DataGridView. Он также показывает другую информацию.

  2. DashboardList.aspx: Он показывает все приборные панели с пагинацией в DataGridView.

Для каждой приборной панели имеется несколько элементов управления (то есть для каждой строки DataGridView). Например: панель управления может быть «отредактирована» и «совместно» с другими пользователями.

Я хотел был бы закодировать DataGridView только ОДИН.

Затем я хотел бы использовать этот код на обеих страницах. Как мне это сделать?

Примечание: я создаю DataGridView, перетаскивая его из панели инструментов Visual Studio. Т.е. я сам не кодировал все это. Тем не менее, я сам создал элементы управления, такие как кнопка «Поделиться».

ответ

1

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

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

  1. Я хотел бы создать отдельную папку для пользовательских элементов управления.
  2. Щелкните правой кнопкой мыши эту папку и выберите «Добавить новый элемент», а затем выберите «Пользовательский контроль».
  3. Введите GridView внутри этого пользователя Control

Ваш контроль пользователя будет выглядеть примерно так:

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="YourUserControlName.ascx.vb" Inherits="Controls_YourUserControlName" %> 

<asp:GridView ID="GridView1"> 
    <!-- Do you grid view stuff here --> 
</asp:GridView> 

Чтобы использовать пользовательский элемент управления необходимо зарегистрировать его на странице вы хотите использовать это на. Код выглядит так:

<%@ Register Src="~/Controls/ucGrid.ascx" TagName="ucGrid" TagPrefix="uc" %> 

Тогда вы будете использовать его точно так же, как серверный контроль.

<uc:ucGrid ID="GridView" runat="server" /> 

Однако, регистрация пользовательского элемента управления на каждой странице может стать утомительным, так, чтобы сделать вещи проще вы можете зарегистрировать их в web.config.

<system.web> 
    <pages> 
    <controls> 
     <add tagPrefix="uc" src="~/Controls/ucGrid.ascx" tagName="ucGrid"/> 
    </controls> 
    </pages> 
</system.web> 
+0

Спасибо. Я попробую. Я буду принимать ваш ответ после успешного использования. Еще раз спасибо! – coolscitist

+0

Это сработало. Но у меня есть небольшая проблема. Файл ascx, который я создал, содержит DataSource и сетку. Для одного файла я хотел бы отредактировать DataSource, чтобы читать только 5 строк, а для другого файла я хотел бы, чтобы он читал все строки. Теперь как мне получить доступ к источнику данных из нового файла (т. Е. Из файла, в котором используется ascx)? – coolscitist

+0

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

0

Очевидным решением является установка сетки в UserControl, а затем включение UserControl на всех соответствующих страницах.

0

Для этого вы можете использовать "web user contorl". Добавьте webusercontrol в свое решение, перетащите datagridview в интерфейс webusercontrol и измените файл codebehind usercontrol на основе ваших потребностей. После этого создайте свое решение. После создания вашего решения вы можете просто перетащить свой usercontrol на любую страницу, которую хотите использовать.Вам не придется вводить код снова и снова. Вы можете найти «использование веб-элементов управления», если вам нужна дополнительная информация.

Смежные вопросы