ملء عمود داتاغريدفيف منسدل مع دون سرعة الصوت وvb.net
-
21-08-2019 - |
سؤال
ومثل يقول العنوان، وأنا أحاول لملء عمود مربع التحرير والسرد في داتاغريدفيف.
وهنا ما لدي حتى الآن:
Dim lc As System.Web.UI.WebControls.ListItemCollection = _
DataAccess.Part.GetListItems()
dgvcboPart.DataSource = lc
' This is a standalone combo box and it works ok
cboTest.DataSource = lc
وأي اقتراحات بشأن ما أنا في عداد المفقودين؟
والشكر توني W
المحلول
وأنا أقترح عليك أولا ربط أغانى أخرى إلى BindingSource ثم قم بإضافة BindingSource إلى داتاغريدفيف (حتى تعرف موقف)
ولكن ينبغي أن يكون ملزما ComboBoxCell الى حد كبير على التوالي إلى الأمام.
ودعونا نقول لديك tblCurrency DataTable والتي تحتوي على عمودين معرف واسم. لديك لربط هذا العمود الخاص بك (أفترض العمود 0 IST DataGridViewColumn الخاص بك)
dgvcboPart.Columns(0).DataSource = tblCurrency
dgvcboPart.Columns(0).ValueMember = "Id"
dgvcboPart.Columns(0).DisplayMember = "Name"
وبعد ذلك يمكنك تعيين DataPropertyName إلى الملكية في مصدر البيانات الخاص بك.
dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"
وكن حذر، tblCurrency.Id وCurrency_Id يجب أن تكون من نفس النوع (Int32 UInt32 ولا يعمل) وتحصل على MESSAGEBOX سيئة مع تتبع مكدس الذاكرة المؤقتة كامل إذا Currency_Id له قيمة غير موجود في tblCurrency (بحيث يجب عليك التعامل مع الحدث DataError)
نصائح أخرى
dgvcboPart.DataSource = lc
dgvcboPart.DataBind()
ويكون لاستدعاء أسلوب DataBind للسحر أن يحدث!