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

سؤال متعلق بال Datagrid-DropDown Col

مغلق
بدأه صاحب همة في 16 سبتمبر 2006 · 6 رد · 932 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
<asp:TemplateColumn>
  <ItemTemplate>
	 <asp:DropDownList id="dl" runat="server" DataSource='<%# BindDropList(DataBinder.Eval(Container.DataItem,"id"))%>'/>   
  </ItemTemplate>
</asp:TemplateColumn>

الجزء أعلاه هو جزء متكرر وجدته عند البحث عن كيفية اضافة dropdown col الى datagrid (asp 2003) الحلقة النفقودة التي أبحث عنها هي كيفية ربط هذا الكنترول مع الحقل الذي هو موجود فيه؟؟ مثلا: الجريد أعلاه يعرض Products وهذا Column يعرض Supplier Name في Dropdown بحيث يكون Datavalue هو عبارة عن SupplierId و TextValue عبارة عن SupplierName ..المطلوب كيف يمكن أن أجعل قيمةSupplierName الظاهرة في Dropdown هي المعبرة عن SupplierId المخزن في جدول Products ..

مع خالص الشكر والتقدير..

من لمح فجر الأجر هان عليه ظلام التكليف

#2

هناك طريقه سهله جدا ...

اولا قم بانشاء DataSet مثلا dsSuppliers مخزن بها المعلومات التى تريدها عن ال Suppliers مثلا ال

SupplierID

SupplierName

واى معلومات اخرى عن ال Suppliers

ثم نضع فى DataSource ال dataset

ddlSupplierName.DataSource=dsSuppliers;

ثم نبدأ فى تحديد ال Text وال Value

ddlSupplierName.DataTextField="SupplierName";

ddlSupplierName.DataValueField="SupplierID";

ddlSupplierName.DataBind();

الان نفترض انك تريد ان تضع ال ID للقيمه المختاره من الDropDownList كشرط لاى Query اخر

سوف يكون هذا الكود

int.Parse(ddlSupplierName.SelectedValue.ToString());

ان شاء الله يكون ده الى انت تقصده ..

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#3

شكرا لك أخي الكريم...ولكن ليس الذي قصدته!!!

مأقصده ربما يتضح بالمثال التالي:

عندي datagrid فيها ثلاث حقول : ProductId,ProductName,SupplierID اضافة الحقلين الاولين الى الDatagridسهلة ، وكذلك اضافة drop down يحمل SupplierName as textval and SupplierID as dataval وهذه القائمة يكون تجهيزها بــDataset ..

المشكلة الان كيف يمكن ان أربط هذه dropdown التي تحمل all Suppliers anme and id مع حقل SupplierID الموجود في Product Table والذي يمثل datasource للDatagrid..

أرجو أن اكون قد وفقت لتوضيح سؤالي أكثر..

ومع خالص شكري وتقديري مرة أخرى..

من لمح فجر الأجر هان عليه ظلام التكليف

#4

انا الى فهمته منك الان انك تريد الاتى

ان تربط بين الداتا جريد وال drop down list بمعنى ان عندما تختار Supplier معين ياتى لك بال Products الخاصه به ..

زى ما قولت لك فى الرد السابق

اقتباس
الان نفترض انك تريد ان تضع ال ID للقيمه المختاره من الDropDownList كشرط لاى Query اخر

سوف يكون هذا الكود

كودint.Parse(ddlSupplierName.SelectedValue.ToString());

اى بمعنى فى ال query الى هتعمل بيه bind على الداتا جريد اعمله كالاتى

Select .......................... Where SupplierID=int.parse(ddlSupplierName.SelectedValue.ToString());[

معنى ذلك ان عندما تختار عنصر معين من الليست سوف ياتى بال value الخاصه به وضعها فى ال where condition وياتى بال Products التى تتبع الsupplier الذى تم اختياره ان شاء الله المره دى اكون فهمت قصدك ;)

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#5

أشكرك أخي مرة أخرى ومرة أخرى يبدو أني لم أحسن التعبير عما أريد..وسأحول طرح سؤالي بطريقة أخرى:

لدي Datagrid with the following fields:

1-ProductID of type databound coloumn

2-ProductName of type Databound Colum

3-SupplierID of type TemplateColumn

الان أن تجاوزت عمل Dropdown واضافته للقائمة بحيث يحمل كل SupplierName الموجودة في Suppliers Table ، المشكلة أن dropdown تظهر كعمود موجود في الداتا جريد ويحمل جميع قيم Suppliersname ولكن ليس له أي علاقة بــProduct Table ، والمفترض أن SupplierID يؤثر على Dropdown بحيث يظهر datavalue ..

أرجو أن أكون ٌدوصلت هذه المرة الى شرح ما اريده..

مع جزيل شكري وتقديري

من لمح فجر الأجر هان عليه ظلام التكليف

#6

يوجد بين ال product وال suppliers علاقه من نوع One to Many بمعنى ان من الممكن ان يكون لكل supplier اكثر من product

يبقى انت هيبقى الQuery الخاص بال BIND فى الداتا جريد كالاتى

select P.ProductID,P.ProductName,S.CompanyName  
from Products as P
 inner join Suppliers as S 
on P.SupplierID=S.SupplierID

اقتباس
لدي Datagrid with the following fields:

1-ProductID of type databound coloumn

2-ProductName of type Databound Colum

3-SupplierID of type TemplateColumn

اذا كنت تريد الاتى

ان عندما تختار supplier معين ياتى بجميع الproducts الخاصه بع على الداتا جريد سوف تتبع الطريقه التاليه

ان تستخدم الQuery الاتى To Fill DropDownList

select SupplierID , CompanyName from Suppliers

ddlSupplierName.DataTextField="CompanyName";
ddlSupplierName.DataValueField="SupplierID";
ddlSupplierName.DataBind();

وهيبقى فى الحاله دى ال Query الخاص بال BIND لل DATAGRID

select P.ProductID,P.ProductName,S.CompanyName
from Products as P
 inner join Suppliers as S 
on P.SupplierID=S.SupplierID
where S.SupplierID='"+int.parse(this.ddlSupplierName.SelectedValue.ToString());.+"'

بالكود ده تقدر تعمل Filter للداتا الى عندك بحيث لكل supplier تقدر تعرض الproducts الخاص به

فعلا عذرا اذا كنت لم اتمكن من فهم ما تقصده ولكن هذا ما فهمته من كلامك اذا كان احد الاخوه فهم قصدك فعلا ياريت يفيدنا

والسلام عليكم ورحمة الله وبركاته ..

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#7

السلام عليكم و رحمة الله و بركاته

ما تزعلش كده يا اخ (صاحب همة)

سؤالك مش غامض اوي بس عشان وضع ال dropdownlist في الداتا جريد غير تقليدي ف ده هو اللي مخلي الناس تفهم غلط زي الاخ (belal.net) جزاه الله خيرا

بص انا حاحاول معاك دلوقتي مؤقتا لحد ما اقعد على الدوت نت

انت ممكن تعمل دالة تاخذ ال ProductID و ترجع داتا سيت بال CompanyName,SupplierID

و بعدين

تلغي تماما الجزء ده

DataSource='<%# BindDropList(DataBinder.Eval(Container.DataItem,"id"))%>'

و بعدين

فيه حدث للداتا جريد اسمه data binding ممكن تستدعي فيه الدالة اللي فاتت و تديها ال ProductID و تاخد الداتا سيت اللي راجعة تخليها داتا سورس للdropdownlist

جرب و قولي الاخبار

:rolleyes:

" و العجيب أن الناس دائما يفكرون في اصلاح العالم من حولهم و لا يفكرون في اصلاح انفسهم "

Windows Live Messenger

هذا الموضوع مغلق.

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