آموزش ساخت DropDown تو در تو که میتواند در خیلی از مواقع پرکاربرد و در بعضی مواقع ما نیاز داریم برای اینکه اطلاعات مربوط به یک جدول را بسته یه یک اطلاعات خاص از جدولی دیگر پر کنیم ، خوب مثال ساده ای که میتونم بزنم نمایش استان ها و شهرستان هاست که با انتخاب استان لیست شهرستان های آن استان نیز نمایش داده شود ، کار بسیار ساده ای است که در ادامه ان را در ASP.NET توسط ابزار EntityDatasource بدون حتی یک خط کد نویسی انجام میدهیم.
برای این کار نیاز به یک فرم داریم و دو DropDown List !
پروژه خود را در ASP.NET ساخته و مراحل را باهم پیش میگیریم سعی میکنیم تصویر مراحل را نیز براتون قرار بدم هرچند فیلم آموزشی گویای تمامی مراحل هست.برای آموزش.
ابتدا باید دیتابیس را طراحی کنیم و دو جدول ساخته و رابطه ای نیاز برای ارتباط باهم در آن ایجاد کنیم ،
برای ساخت دیتابیس میتوانید از اسکریت زیر استفاده کنید و یا اینکه هر نوع دیتابیس که دارید نیز میتوانید استفاده کنید و فقط به نوع رابطه دقت کنید که در لیست شهرستان ها ID استان باید قرار بگیره و با خوده استان رابطه داشته باشه ، یک رابطه خیلی ساده.
CREATE TABLE [dbo].[Tbl_Ostan]( [OstanID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](150) NULL, CONSTRAINT [PK_Tbl_Ostan] PRIMARY KEY CLUSTERED ( [OstanID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET IDENTITY_INSERT [dbo].[Tbl_Ostan] ON INSERT [dbo].[Tbl_Ostan] ([OstanID], [Name]) VALUES (1, N'تهران') INSERT [dbo].[Tbl_Ostan] ([OstanID], [Name]) VALUES (2, N'البرز') SET IDENTITY_INSERT [dbo].[Tbl_Ostan] OFF /****** Object: Table [dbo].[Tbl_Shahrestan] Script Date: 01/21/2016 13:51:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Tbl_Shahrestan]( [ShahrestanID] [int] IDENTITY(1,1) NOT NULL, [OstanID] [int] NOT NULL, [Name] [nvarchar](150) NULL, CONSTRAINT [PK_Tbl_Shahrestan] PRIMARY KEY CLUSTERED ( [ShahrestanID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET IDENTITY_INSERT [dbo].[Tbl_Shahrestan] ON INSERT [dbo].[Tbl_Shahrestan] ([ShahrestanID], [OstanID], [Name]) VALUES (1, 1, N'ورامین') INSERT [dbo].[Tbl_Shahrestan] ([ShahrestanID], [OstanID], [Name]) VALUES (3, 1, N'قرچک') INSERT [dbo].[Tbl_Shahrestan] ([ShahrestanID], [OstanID], [Name]) VALUES (4, 2, N'هشتگرد') INSERT [dbo].[Tbl_Shahrestan] ([ShahrestanID], [OstanID], [Name]) VALUES (5, 2, N'ماهدشت') SET IDENTITY_INSERT [dbo].[Tbl_Shahrestan] OFF /****** Object: ForeignKey [FK_Tbl_Shahrestan_Tbl_Ostan] Script Date: 01/21/2016 13:51:47 ******/ ALTER TABLE [dbo].[Tbl_Shahrestan] WITH CHECK ADD CONSTRAINT [FK_Tbl_Shahrestan_Tbl_Ostan] FOREIGN KEY([OstanID]) REFERENCES [dbo].[Tbl_Ostan] ([OstanID]) GO ALTER TABLE [dbo].[Tbl_Shahrestan] CHECK CONSTRAINT [FK_Tbl_Shahrestan_Tbl_Ostan] GO
بعد از اضافه کردن Modal روی پروژه ارتباط با دیتابیسی که ساختیم برقرار میکنیم و دو جدول را نیز انتخاب میکنیم.
حال نیاز به دو DropDownList داریم که اطلاعات استان و شهرستان ها را در آن نمایش بدیم ، دو EntityDatasource نیز روی صفحه قرار داده و همانند آموزش ارتباط را با جدول هایی که از طریق modal انتخاب کردید متصل میکنیم.
<asp:ScriptManager runat="server" ID="script"></asp:ScriptManager> <asp:UpdatePanel runat="server" ID="uppanel"> <ContentTemplate> <asp:EntityDataSource runat="server" ID="enShowListOstan" ConnectionString="name=DripDownTodarToEntities" DefaultContainerName="DripDownTodarToEntities" EnableFlattening="False" EntitySetName="Tbl_Ostan"></asp:EntityDataSource> <asp:DropDownList runat="server" ID="ddlOstan" AutoPostBack="True" DataSourceID="enShowListOstan" DataTextField="Name" DataValueField="OstanID" /> <br/> <hr/> <asp:EntityDataSource runat="server" ID="enShowListSharetan" ConnectionString="name=DripDownTodarToEntities" DefaultContainerName="DripDownTodarToEntities" EnableFlattening="False" EntitySetName="Tbl_Shahrestan" AutoGenerateWhereClause="True" EntityTypeFilter="" Select="" Where=""> <WhereParameters> <asp:ControlParameter ControlID="ddlOstan" DbType="Int32" Name="OstanID" PropertyName="SelectedValue" /> </WhereParameters> </asp:EntityDataSource> <asp:DropDownList runat="server" ID="ddlSharestan" DataSourceID="enShowListSharetan" DataTextField="Name" DataValueField="ShahrestanID" /> </ContentTemplate> </asp:UpdatePanel>
نکته ای که اینجا داریم EntityDatasource دومی بعنی برای نمایش شهرستان هاست دقت کنید که طبق تصاویر چه تنظیماتی برای شرط آن برقرار میکنیم.
نکته دومی AutoPostback دراپ دان اولی یعنی لیست شهرستان هاست که باید True بشه ، این کارم خیلی ساده توسط کد و یا تنظیمات قابل انجامه.
اگر تمام کار ها را درست انجام داده باشید میتوانید پروژه را اجرا کنید و از کارتون لذت ببرید قبلش یادتون دیتابیسو پر کنید هرچند چندین اطلاعات براتون گذاشتم ،
پروژه هم ضمیمه کردم فیلم نیز قابل دانلوده ، موفق باشید 🙂
هیچ دیدگاهی نوشته نشده است.