الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد معرفة كيفية ربط Dropdownlist مع Dropdownlist آخر , داخل Detailsview

بدأه homano في 16 أبريل 2008 · 9 رد · 1,435 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ,

الرجاء أريد أن أعرف كيف يتم ربط dropdownlist مع dropdownlist آخر , داخل DetailsView

مثلاً لدي: dropdownlist معبئة بـ الدولة وعندما اختار الدولة يتم تعبئة dropdownlist الأخرى بـ المدن.

تحياتي ,,,

#2
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head runat="server">
	   <title>Untitled Page</title>
   </head>
   <body>
	   <form id="form1" runat="server">
	   <div>
		   <strong>Country</strong><br />
		   <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
		   </asp:DropDownList><br />
		   <br />
		   <strong>State<br />
		   </strong>
		   <asp:DropDownList ID="DropDownList2" runat="server">
		   </asp:DropDownList>

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

Imports System.Data
   Partial Class _Default
	   Inherits System.Web.UI.Page

	   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		   If Not IsPostBack Then
			   getCountry()
			   getState()
		   End If
	   End Sub
	   Sub getState()
		   Dim ds As DataSet = New DataSet()
		   ds.ReadXml(Server.MapPath("CountriesAndStates.xml"))
		   Dim dr As DataRow() = ds.Tables(1).Select("country_Id=" + DropDownList1.SelectedValue)
		   DropDownList2.Items.Clear()
		   For Each row As DataRow In dr
			   DropDownList2.Items.Add(New ListItem(row.Item(0), row.Item(1)))
		   Next
		   DropDownList2.DataBind()
	   End Sub

	   Sub getCountry()
		   Dim ds As DataSet = New DataSet()
		   ds.ReadXml(Server.MapPath("CountriesAndStates.xml"))
		   DropDownList1.DataSource = ds.Tables(0)
		   DropDownList1.DataTextField = "name"
		   DropDownList1.DataValueField = "country_Id"
		   DropDownList1.DataBind()
	   End Sub
	   Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
		   getState()
	   End Sub
   End Class

تم تعديل هذه المشاركة بواسطة محمد سماقية في 17 أبريل 2008 في 12:24

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#3

السلام عليكم ,,

يعطيك العافية اخي محمد , مجهود تستحق الشكر عليه واتعبتك معي

ولكن كان سؤالي :

( أريد أن أعرف كيف يتم ربط dropdownlist مع dropdownlist آخر , داخل DetailsView )

تحياتي ,,

#4

السلام عليكم

المفروض ان تضع TemplateField وتضع بداخله ما تريد (لم استطع ارفاق مثال كامل بسبب عدم وجود قاعدة بيانات مناسبة لدي )

لكن اعمل DetailsView واربطها مع قاعدة البيانات ثم افتح كود HTML حيث تجد Fields فضع هناك الكود التالي :

  <Fields>
			<asp:TemplateField>
				<EditItemTemplate>
					<asp:DropDownList ID="dropDown1" runat="server" DataSourceID="Data_Area"  AutoPostBack="true"
					DataTextField="name" DataValueField="code"  >
					</asp:DropDownList>
					 <asp:SqlDataSource ID="Data_Area" runat="server" 
					  ConnectionString="<%$ ConnectionStrings:CnnStr %>" 
						SelectCommand="SELECT  code,[name]   FROM [area1]">
					 </asp:SqlDataSource>
				   <br />	 
				  <asp:DropDownList ID="dropDown2" runat="server" DataSourceID="Data_Area2"  AutoPostBack="true"
					DataTextField="name" DataValueField="code"   >
					</asp:DropDownList>
					 <asp:SqlDataSource ID="Data_Area2" runat="server" 
					  ConnectionString="<%$ ConnectionStrings:CnnStr %>" 
						SelectCommand="SELECT  code,[name] , code2  FROM [area2] where code2=@Code2" >
						<SelectParameters>
						<asp:ControlParameter ControlID="dropDown1" Type="string" DefaultValue="-1" Name="code2" PropertyName ="selectedValue" />
						</SelectParameters>
					 </asp:SqlDataSource>   

				</EditItemTemplate>
				<InsertItemTemplate>
					نفس الكود في  الاعلى 
				</InsertItemTemplate>
				<ItemTemplate>
					<asp:Label ID="Label1" runat="server" Text'<%# Eval("AreaName") %>' ></asp:Label>
				</ItemTemplate>
			</asp:TemplateField>
			<asp:BoundField DataField="xxx" />
		</Fields>

فارجو ان تجرب الكود مع تغيير اتصال قاعدة البيانات والجداول بما يناسبك وبعد ذلك نكمل بمشيئة الله

#5

بسم الله الرحمن الرحيم

مرحبا TareqVB وأسعدتم مساءً ,,

في الواقع جربت الكود اللي وضعته وحاولت يمين ويسار ولكن أحس اني ضايع ,

ماأدري لربما الطريقة اللي تستعملها في الإتصال بقاعدة البيانات عن طريق الكود وأنا ما عندي خلفية بذلك

وكذلك لا أدري بم تقصد بالعبارة ( نفس الكود في الاعلى ).

يمكن يكون أوضح فأنا أرفقت الصفحة اللي أستعملها مع قاعدة البيانات واذا فيكم شدة حيل بتساعدونا .

فمشكلتي في الصفحة (عند تحديث - اختيار - منطقة أخرى مثلاً المنطقة الجنوبية )

تظهر رسالة خطأ.

وأشكر الجميع على بذل المجهود.

تحياتي ,,

Register.rar

#6

بسم الله الرحمن الرحيم ،،

مرحبا TareqVB

ماأدري اطلعت على آخر رد لي ...

تحياتي ,,,

#7

يوجد امثلة في موقع asp.net تهتم بذلك

الطريقة سهله جدا بدون اكواد ودوشه

فقط اضف بارمتر للاستعلام الثاني( استعلام المدن ) في الداتاست واثناء ربطه بالداتا سورس اختر في البارامتر كنترول واختر الاداة التي تعرض الدول .

تحياتي

تم تعديل هذه المشاركة بواسطة ابوطلال في 29 أبريل 2008 في 23:35

#8

السلام عليكم ،،،

اخي كما ذكر الأخ ابو طلال موجود امثله كثيره في موقع ال asp.net وهذا رابط للموضوع ان شاء الله راح يفيدك

http://www.asp.net/learn/data-access/tutorial-08-vb.aspx

تحياتي

من مواضيعي

برنامج للكفالات والأقساط

برنامج لإدارة مؤسسة نقل الطالبات

بـــــرنامج الصراف الآلي

_______________________

سبحان الله وبحمده سبحان الله العظيم

#9

السلام عليكم

الاخ ابو طلال والاخ dbprog هو فعلا هذا ما قمت به وصحيح ترى الكود طويل وذلك بسبب استخدام DetailsView وبالتالي بحاجة الى المزيد من المعالجة اكثر من الحالة العادية

#10

بسم الله الرحمن الرحيم

كما ذكر الأخ / TareqVB

تحتاج الى المزيد من المعالجة اكثر من الحالة العادية , لأنها داخل DetailsView أما الحالة العادية فعملية انشائها سهل جداً

والمثال اللي أرفقته يوضح ذلك. لوأنكم اطلعتم عليه.

في الواقع اطلعت على الموقع سابقاً الي ذكره الأخ/ أبو طلال

http://www.asp.net/learn/data-access/tutorial-08-vb.aspx

ولكنه يعالج الحالة العادية.

تحياتي للجميع ,,,

تم تعديل هذه المشاركة بواسطة homano في 1 مايو 2008 في 09:19

مواضيع مشابهة