Спосіб відображення ієрархічних даних за допомогою вкладені елементи керування ретрансляторів і Visual C#.NET

Переклади статей Переклади статей
Номер статті: 306154 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

ПІДСУМКИ

У цій статті описується вкладених Ретранслятор керування використовуються для відображення ієрархічних даних. Ви можете застосувати цю концепцію Інші список пов’язані елементи керування.


Прив'язати до батьківській таблиці

  1. Запустити Microsoft Visual Studio.МЕРЕЖІ.
  2. У меню файл виберіть команду Створитиі натисніть кнопку проекту.
  3. Виберіть Visual C# проектів у розділі Типи проектуі натисніть кнопку ASP.NET веб-додатків у розділі шаблони.
  4. У полі розташування видалити WebApplication#, і Введіть NestedRepeater. Якщо використовується локальний сервер Залиште ім'я сервера як http://localhost. Наступний шлях відображається в полі розташування :
    http://localhost/ NestedRepeater
    Натисніть кнопку ОК.
  5. В Explorer рішенняклацніть правою кнопкою миші вузол ім'я проекту NestedRepeater , виберіть пункт Додатиі натисніть кнопку Додати веб-форму.
  6. Ім'я веб-форму, введітьNestedRepeaterі натисніть кнопку Відкрити.
  7. Створюється новий веб-форму. Він відкривається в поданні конструктора в на інтегроване середовище розробки (IDE) Microsoft Visual Studio.МЕРЕЖІ. Від Інструментів, виберіть елемент керування, ретрансляторів а потім перетягніть його до сторінки веб-форму.
  8. Змінити ID властивості цього елемента керування повторювачparentRepeater.
  9. Перейдіть до подання елементів HTML для цього веб-форму. Щоб зробити це, натисніть кнопку закладці HTML у лівому нижньому куті дизайнера. Повторювач керування генерує HTML-код нижче:
    <asp:Repeater id="parentRepeater" runat="server"></asp:Repeater>
    					
  10. Додати наступний код у Ретранслятор Мітки:
    <itemtemplate>
         <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>
    </itemtemplate>
    					
    Після цього, код HTML для Ретранслятор виглядає наступним чином:
    <asp:Repeater id="parentRepeater" runat="server">
    	<itemtemplate>
    	     <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>	
          </itemtemplate>
    </asp:Repeater>
    					
  11. Рішення Internet Explorer клацніть NestedRepeater.aspxта виберіть команду Переглянути код перейти до код за NestedRepeater.aspx.cs файл.
  12. Додати наступні декларації простору імен верхній частині на файл:
    using System.Data;
    using System.Data.SqlClient;
    					
  13. Додати наступний код події Page_Load створити підключення до бази даних паби а потім прив'язати авторів таблиці до Ретранслятор контролю:
          public void Page_Load(object sender, EventArgs e)
          {
             //Create the connection and DataAdapter for the Authors table.
             SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI");
             SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
    
             //Create and fill the DataSet.
             DataSet ds = new DataSet();
             cmd1.Fill(ds,"authors");
             //Insert code in step 4 of the next section here.
             //Bind the Authors table to the parent Repeater control, and call DataBind.
             parentRepeater.DataSource = ds.Tables["authors"];
             Page.DataBind();
    
             //Close the connection.
             cnn.Close();
           }
    					
    Примітка: ви, можливо, доведеться змінити рядок підключення бази даних, як підходить для вашого середовища.

  14. Зберегти всі файли.
  15. У Рішення Explorer, клацніть правою кнопкою миші на NestedRepeater.aspx а потім натисніть кнопку Встановити як стартова сторінка.
  16. Створення меню команду Побудувати рішення для компіляції проекту.
  17. Переглянути ASPX-сторінки в браузері а потім переконайтеся, що сторінку працює до сих пір.

    Висновок повинен з'явитися наступним чином:
    • 172-32-1176
    • 213-46-8915
    • 238-95-7766
    • 267-41-2394
    • ...

Прив'язати до дочірньої таблиці

  1. У вигляді HTML сторінки NestedRepeater.aspx знайти такий рядок коду:
    <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>
    						
    Після цього Кодексу, додати наступний код:
    <asp:repeater id="childRepeater" runat="server">
    		<itemtemplate>
    	            <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>
    		</itemtemplate>
    </asp:repeater>
    						
    Цей новий код додає другий елемент керування РетрансляторItemTemplate власністю батьківський контроль Ретранслятор .
  2. Властивість джерело даних для дитини, керування Ретранслятор наступним чином:
    <asp:repeater ... datasource='<%# ((DataRowView)Container.DataItem)
          .Row.GetChildRows("myrelation") %>' >
    					
    Після того, як властивість джерело даних для дитини Ретранслятор контролю, код HTML для двох Ретранслятор контролю (батько і дитина) матиме такий вигляд:
    <asp:Repeater id="parentRepeater" runat="server">
    	<itemtemplate>
    		<b>
    		 <%# DataBinder.Eval(Container.DataItem, "au_id") %>
    		</b>
    		<br>
    		<asp:repeater id="childRepeater" runat="server" 
                        datasource='<%# ((DataRowView)Container.DataItem)
          .Row.GetChildRows("myrelation") %>' >
    			<itemtemplate>
    				<%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>	
    			</itemtemplate>
    		</asp:Repeater> 
    	</itemtemplate>
    </asp:Repeater>
    					
  3. Додати наступні Директиви сторінки у верхній частині сторінки:
    <%@ Import Namespace="System.Data" %>
    					
  4. На сторінці код за замінити такий рядок у Page_Load події
    //Insert code in step 4 of the next section here.
    						
    з такий код:
             //Create a second DataAdapter for the Titles table.
             SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
             cmd2.Fill(ds,"titles");
    
             //Create the relation between the Authors and Titles tables.
             ds.Relations.Add("myrelation",
             ds.Tables["authors"].Columns["au_id"],
             ds.Tables["titles"].Columns["au_id"]);
    
    					
    Це додає назви таблиці до набору даниха потім додає відносини між авторів і дисків таблиці.
  5. Зберегти та скомпілювати програми.
  6. Перегляд сторінки в браузері а потім переконайтеся, що сторінка до цих пір працює. Висновок повинен з'явитися наступним чином:
    172-32-1176
    PS3333
    213-46-8915
    BU1032
    BU2075
    238-95-7766
    PC1035
    267-41-2394
    BU1111
    TC7777
    ...

Повний список кодів

Nestedrepeater.aspx

<%@ Page language="c#" Codebehind="NestedRepeater.aspx.cs" AutoEventWireup="false" Inherits="NestedRepeater.NestedRepeater" %>
<%@ Import Namespace="System.Data" %>

<html>
<body>
<form runat=server>

<!-- start parent repeater -->
<asp:repeater id="parentRepeater" runat="server">
   <itemtemplate>
      <b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>

      <!-- start child repeater -->
      <asp:repeater id="childRepeater" datasource='<%# ((DataRowView)Container.DataItem)
      .Row.GetChildRows("myrelation") %>' runat="server">

         <itemtemplate>
            <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>
         </itemtemplate>
      </asp:repeater>
      <!-- end child repeater -->

   </itemtemplate>
</asp:repeater>
<!-- end parent repeater -->

</form>
</body>
</html>
				

Nestedrepeater.aspx.CS

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace NestedRepeater
{
   public class NestedRepeater : System.Web.UI.Page
   {
      protected System.Web.UI.WebControls.Repeater parentRepeater;
      public NestedRepeater()
      {
         Page.Init += new System.EventHandler(Page_Init);
      }
      public void Page_Load(object sender, EventArgs e)
      {
         //Create the connection and DataAdapter for the Authors table.
         SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI ;");
         SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);

         //Create and fill the DataSet.
         DataSet ds = new DataSet();
         cmd1.Fill(ds,"authors");

         //Create a second DataAdapter for the Titles table.
         SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
         cmd2.Fill(ds,"titles");

         //Create the relation bewtween the Authors and Titles tables.
         ds.Relations.Add("myrelation",
         ds.Tables["authors"].Columns["au_id"],
         ds.Tables["titles"].Columns["au_id"]);

         //Bind the Authors table to the parent Repeater control, and call DataBind.
         parentRepeater.DataSource = ds.Tables["authors"];
         Page.DataBind();

         //Close the connection.
         cnn.Close();
      }
      private void Page_Init(object sender, EventArgs e)
      {
         InitializeComponent();
      }
      private void InitializeComponent()
      {    
         this.Load += new System.EventHandler(this.Page_Load);
      }
   }
}
				

ПОСИЛАННЯ

Щоб отримати додаткові відомості, зверніться до такі розділи на Microsoft .NET Framework Software Development Kit (SDK):
запит на додавання зв'язок "один-до-одного" між таблицями

Навігація у зв'язок "один-до-одного" між таблицями

Повторювач керування веб-сервера

Властивості

Номер статті: 306154 - Востаннє переглянуто: 12 червня 2012 р. - Редакція: 1.0
ЗАСТОСОВУЄТЬСЯ ДО:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Ключові слова: 
kbdatabinding kbhowtomaster kbservercontrols kbmt KB306154 KbMtuk
Машинний переклад
УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.
Клацніть тут, щоб переглянути цю статтю англійською мовою: 306154

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com