SUPERSLIMAK




Połączone kontrolki Gridview - Linked Gridviews

1. Wstęp
2. Przygotowanie bazy danych
3. Połączenie kontrolek


1.Wstęp

Podstawą istnienia strony internetowej jest prezentacja danych. Jedną z dostępnych form jest forma tabelaryczna obsługiwana między innymi przez kontrolkę gridview. Celem tego artykułu jest prezentacja jak szybko przygotować stronę internetową w technologi ASP.NET, która wyświetla dane z połączonych tabel w bazie danych SQL Server. Przykład jest stworzony na środowisku Visual Web Developer 2008 Express Edition, Framework 3.5 + SQl Server 2005 Express Edition.

2.Przygotowanie bazy danych

Do wykonania tego zadania potrzebne są tabele których dane pozwalają na połączenie ich w jeden wynik.

CREATE TABLE [dbo].[orders](
[OrderID] [int] NOT NULL,
[OrderName] [nvarchar](100) NULL,
[OrderValue] [money] NULL,
CONSTRAINT [PK_orders] PRIMARY KEY CLUSTERED
(
[OrderID] ASC
)
) ON [PRIMARY]


CREATE TABLE [dbo].[products](
[ProductID] [int] NOT NULL,
[Name] [nvarchar](100) NULL,
[Description] [nvarchar](100) NULL,
CONSTRAINT [PK_products] PRIMARY KEY CLUSTERED
(
[ProductID] ASC
)
) ON [PRIMARY]

CREATE TABLE [dbo].[orderdetails](
[OrderID] [int] NULL,
[ProductID] [int] NULL
) ON [PRIMARY]

Następnie nalezy wypełnić tabele danymi.

2.Połączenie kontrolek

Drugim etapem jest przygotowanie strony na której zamierzamy wyświetlić dane.



Do tego potrzebne będą dwie kontrolki gridview oraz źródła danych sqldatasource.



Aby zadanie wykonać najmniejszym kosztem kolejność konfiguracji ma spore znaczenie. Rozpoczynamy od skonfigurowania pierwszego sqldatasource1.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=ServerName;Initial Catalog=DataBaseName;Persist Security Info=True;User ID=Login;Password=Password"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [OrderID], [OrderName], [ContactID], [OrderValue] FROM [orders]">
</asp:SqlDataSource>

Następnie trzeba podłączyć żródło do kontrolki gridview1.



Następnie, jeżeli środowisko nie wykonało tego automatycznie, trzeba dodać kluczowe pole kontrolki Gridview1.



w drugim etapie przygotowujemy sqldatasource2 wg poniższych ustawień. Należy zwrócić uwagę na to że tutaj korzystamy z parametru pobieranego z gridview1.





<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="Data Source=ServerName;Initial Catalog=database;Persist Security Info=True;User ID=Login;Password=Password" ProviderName="System.Data.SqlClient" SelectCommand="select * from products p inner join orderdetails od on p.productid=od.productid where orderid=@OrderID"/>
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="OrderID" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>

Ostatnim etapem jest podłączenie kontrolki gridview2 do sqldatasource2. Wykonujemy to tak samo jak w przypadku kontrolki gridview1. Teraz wystarczy uruchomić stronę i zadanie wykonane. Po wybraniu linku Select pojawi się wypełniony girdview2 z danymi odpowiadającymi wybranemu zamówieniu.






Pozdrawiam
Michał

Komentarze

Brak komentarzy
*Imię:
Email:
Informuj mnie o nowych komentarzach na tej stronie
Ukryj email
*Treść:
 
Powered by Scriptsmill Comments Script