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

معرفة قيم drop down list داخل Place Holder

بدأه lana2008 في 23 ديسمبر 2010 · 1 رد · 554 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هلا

عندي مشكلة في اداة Place Holder انا بضيف ادوات في Place Holder وقت التنفيذ عن طريق الكود التالي

   Dim i, a As Integer
        Dim da As New SqlDataAdapter("Select * from Employee_ where Employee_Team='IT'", con)
        Dim ds As New DataSet
        Dim nu As Integer
        nu = 1
        da.Fill(ds)
        i = Me.Steps_.Text

        For a = 1 To i

            Dim DropDown As New DropDownList
            With DropDown
                .ID = nu
                .Width = 150
                .DataSource = ds
                .DataTextField = "Employee_Name"
                .DataValueField = "Employee_ID"
                .DataBind()
            End With
            Dim spacer_ As LiteralControl = New LiteralControl("Step  :" & nu & " ")
            PlaceHolder1.Controls.Add(spacer_)
            PlaceHolder1.Controls.Add(DropDown)
            Dim spacer As LiteralControl = New LiteralControl("<br /> <br />")
            PlaceHolder1.Controls.Add(spacer)
            nu = nu + 1
        Next

الكود شغال تمام ومافي اي مشكلة

هلا المشكلة انو بعد ما يظهر DropDownList واختار القيم ما بقدر اعرف القيم التي تم اختيارها من DropDownList علشان اخزنه فب الداتا بيس

  Dim i As Integer
        Dim nu As String
        nu = 1
        i = Me.Steps_.Text
        Dim DropDown As New DropDownList()
        For a = 1 To i
            nu = nu + 1
            Dim ddlist As DropDownList = DirectCast(PlaceHolder1.FindControl("DropDown" & nu), DropDownList)
            Dim cmd As New SqlCommand
            cmd.CommandText = "Insert Into Step_ (Object_ID,Step_Number,Step_Employee,Step_Status,Step_Comm,Step_Date)Values(@Object_ID,@Step_Number,@Step_Employee,@Step_Status,@Step_Comm,@Step_Date)"
            cmd.Connection = con
            cmd.Parameters.Add("@Object_ID", SqlDbType.NVarChar).Value = Object_ID.Text
            cmd.Parameters.Add("@Step_Number", SqlDbType.NChar).Value = nu
            cmd.Parameters.Add("@Step_Employee", SqlDbType.NVarChar).Value = ddlist.ToString
            cmd.Parameters.Add("@Step_Status", SqlDbType.NVarChar).Value = "Arriv"
            cmd.Parameters.Add("@Step_Comm", SqlDbType.NVarChar).Value = "NA"
            cmd.Parameters.Add("@Step_Date", SqlDbType.SmallDateTime).Value = Date.Now
            cmd.ExecuteNonQuery()
        Next

التتيجة

Line 93:             cmd.Parameters.Add("@Step_Employee", SqlDbType.NVarChar).Value = ddlist.ToString


Object reference not set to an instance of an object

وشكرااا

#2

السلام عليكم

فى البداية : رسالة الخطأ توضح انه لا يرى اداة DropDownList .

هناك ملاحظات ,

- لا تحتاج أن تستخدم FindControl ,يمكنك الوصول إلى الأداة مباشرةً ,مثال:DropDownListID.SelectedValue .

- بالأعلى قمت بإعطاء أداة DropDownList الخاصية ID بالقيمة nu .فكيف تخبره انها DorpDown & nu . فهذا خطأ .

- عند الحاجة إلى العودة بالقيمة المحددة فى أداة DropDownList نستخدم التالى :DropDownListID.SelectedValue او DropDownListId.SelectedItem.Text أو SelectedIndex حسب الحالة التى تعمل بها . وليس ما قمت بعمله فى هذا السطر فهذا خطأ : cmd.Parameters.Add("@Step_Employee", SqlDbType.NVarChar).Value = ddlist.ToString

يرجى عمل Debug ووضع BreakPoint فهى من سمات المبرمج المحترف وهى تمكنه من متابعة الكود سطراً سطرا . فأحرص عليها .

فى أمان الله .

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

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