السلام عليكم ,
الرجاء أريد أن أعرف كيف يتم ربط dropdownlist مع dropdownlist آخر , داخل DetailsView
مثلاً لدي: dropdownlist معبئة بـ الدولة وعندما اختار الدولة يتم تعبئة dropdownlist الأخرى بـ المدن.
تحياتي ,,,
السلام عليكم ,
الرجاء أريد أن أعرف كيف يتم ربط dropdownlist مع dropdownlist آخر , داخل DetailsView
مثلاً لدي: dropdownlist معبئة بـ الدولة وعندما اختار الدولة يتم تعبئة dropdownlist الأخرى بـ المدن.
تحياتي ,,,
<%@ 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
السلام عليكم ,,
يعطيك العافية اخي محمد , مجهود تستحق الشكر عليه واتعبتك معي
ولكن كان سؤالي :
( أريد أن أعرف كيف يتم ربط dropdownlist مع dropdownlist آخر , داخل DetailsView )
تحياتي ,,
السلام عليكم
المفروض ان تضع 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>فارجو ان تجرب الكود مع تغيير اتصال قاعدة البيانات والجداول بما يناسبك وبعد ذلك نكمل بمشيئة الله
بسم الله الرحمن الرحيم
مرحبا TareqVB وأسعدتم مساءً ,,
في الواقع جربت الكود اللي وضعته وحاولت يمين ويسار ولكن أحس اني ضايع ,
ماأدري لربما الطريقة اللي تستعملها في الإتصال بقاعدة البيانات عن طريق الكود وأنا ما عندي خلفية بذلك
وكذلك لا أدري بم تقصد بالعبارة ( نفس الكود في الاعلى ).
يمكن يكون أوضح فأنا أرفقت الصفحة اللي أستعملها مع قاعدة البيانات واذا فيكم شدة حيل بتساعدونا .
فمشكلتي في الصفحة (عند تحديث - اختيار - منطقة أخرى مثلاً المنطقة الجنوبية )
تظهر رسالة خطأ.
وأشكر الجميع على بذل المجهود.
تحياتي ,,
بسم الله الرحمن الرحيم ،،
مرحبا TareqVB
ماأدري اطلعت على آخر رد لي ...
تحياتي ,,,
يوجد امثلة في موقع asp.net تهتم بذلك
الطريقة سهله جدا بدون اكواد ودوشه
فقط اضف بارمتر للاستعلام الثاني( استعلام المدن ) في الداتاست واثناء ربطه بالداتا سورس اختر في البارامتر كنترول واختر الاداة التي تعرض الدول .
تحياتي
تم تعديل هذه المشاركة بواسطة ابوطلال في 29 أبريل 2008 في 23:35
السلام عليكم ،،،
اخي كما ذكر الأخ ابو طلال موجود امثله كثيره في موقع ال asp.net وهذا رابط للموضوع ان شاء الله راح يفيدك
http://www.asp.net/learn/data-access/tutorial-08-vb.aspx
تحياتي
من مواضيعي
برنامج لإدارة مؤسسة نقل الطالبات
_______________________
سبحان الله وبحمده سبحان الله العظيم
السلام عليكم
الاخ ابو طلال والاخ dbprog هو فعلا هذا ما قمت به وصحيح ترى الكود طويل وذلك بسبب استخدام DetailsView وبالتالي بحاجة الى المزيد من المعالجة اكثر من الحالة العادية
بسم الله الرحمن الرحيم
كما ذكر الأخ / TareqVB
تحتاج الى المزيد من المعالجة اكثر من الحالة العادية , لأنها داخل DetailsView أما الحالة العادية فعملية انشائها سهل جداً
والمثال اللي أرفقته يوضح ذلك. لوأنكم اطلعتم عليه.
في الواقع اطلعت على الموقع سابقاً الي ذكره الأخ/ أبو طلال
http://www.asp.net/learn/data-access/tutorial-08-vb.aspx
ولكنه يعالج الحالة العادية.
تحياتي للجميع ,,,
تم تعديل هذه المشاركة بواسطة homano في 1 مايو 2008 في 09:19