منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف يمكن البحث عن الأدوات الديناميكية من خلال النوع وكيف يمكن تخزين البيانات منها إلى قاعدة البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
قمت بعمل صفحة تقوم بإضافة أدوات control أثناء التشغيل وبعد الضغط على زر button

كود :
[align=left]

Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls

Partial Public Class [Default2]
    Inherits System.Web.UI.Page

    Private numOfColumns As Integer = 1
    Private ctr As Integer = 0
    Private table As Table = Nothing

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        If Not IsPostBack Then
            table = New Table()
            table.ID = "tableBuild"
            Session("table") = table

            ViewState("ctr") = ctr
        End If
        ctr = CType(ViewState("ctr"), Int32)
        table = DirectCast(Session("table"), Table)
        Panel1.Controls.Add(table)

    End Sub
    Private Sub GenerateTable(ByVal colsCount As Integer)
        ctr += 1

        Dim row As New TableRow()

        Dim cell As New TableCell()

        Dim tb As New TextBox()

        tb.ID = "TextBoxRow_" & ctr
        tb.Width = 80

        ' Add the control to the TableCell

        cell.Controls.Add(tb)

        ' Add the TableCell to the TableRow

        row.Cells.Add(cell)

        Dim cell1 As New TableCell()

        Dim dd As New DropDownList
        dd.ID = "dd1" & ctr

        dd.Width = 80

        Dim tb1 As New TextBox()
        tb1.ID = "TextBox1Row_" & ctr

        tb1.Width = 80

        ' Add the control to the TableCell

        cell1.Controls.Add(tb1)
        '----------
        cell1.Controls.Add(dd)
        '------------------------
        ' Add the TableCell to the TableRow

        row.Cells.Add(cell1)

        ' Add the TableRow to the Table

        table.Rows.Add(row)
        Session("table") = table
        ViewState("ctr") = ctr

    End Sub


    Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        numOfColumns = 1

        'Generate the Table based from the inputs

        GenerateTable(numOfColumns)
    End Sub

End Class

[/align]
لدي سؤالين
السؤال الأول كيف يمكنني تنفيذ إجراء على أدوات محدده منها بحيث يتم الاشارة إلى هذه الأدوات من خلال النوع وليس الID؟
السؤال الثاني هو كيف يمكنني تخزين البيانات التي سيتم إدخالها في مربعات النص بداخل قاعدة البيانات؟
انتظرت لعل احد يجيب لكن لاقول مالدي
ماهي الفكرة ؟
لم استطع فهم المطلوب
وكلنا ننتظر احد لديه الحل.
[ATTACH=CONFIG]3631[/ATTACH]
كماهو موضح في الصورة فإنه عند كل ضغطة على الزر يتم إضافة 2text box و dropdownlist
بعد أن يتم ادخال البيانات في الادوات السابقة
كيف يمكنني تخزين هذه البيانات بداخل جدول في قاعدة البيانات؟ بمعنى آخر كيف يمكن الإشارة إلى أن القيم التي سيتم إدخالها في مربعات النص بالعمود الأول سيتم تخزينها بداخل حقل col1 مثلا وهكذا.
وأن جميع أدوات dropdownlist التي سيتم اضافتهاسيتم تعبئتها ببيانات محددة وهكذا.
لم اجربها من قبل ..ساحاول بمثال او انظر للمثال المرفوع


سويت صفحة جديدة بنفس المشروع باسم Default3.aspx

اضف webusercontrol.ascx ووضعته في مجلد جديد باسم mcontrols
اضفت له اي webusercontrol.ascx ثلاث ادوات:
Textbox
Dropdownlist
button

في ملف التكوين web.config

اضفت جملة الاتصال بقاعدة البيانات
كود :
<connectionStrings>
        <add name="mystr" connectionString ="provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb"/>
    </connectionStrings>
واضفت كلاس حولته الى موديول ليكون بشكله الكامل هكذا
كود :
Imports Microsoft.VisualBasic
Imports System.Data.OleDb

Public Module module1
    Public con As New OleDbConnection(ConfigurationManager.ConnectionStrings("mystr").ConnectionString)

End Module

في كود الزر في webusercontrol.ascx كتبت كود الحفظ التالي:
كود :
If TextBox1.Text.Trim = "" Then Exit Sub
        lbl.Visible = False
        Dim cm As New OleDbCommand("insert into tb (tname,kind) values(@tname,@kind)", con)
        cm.Parameters.AddWithValue("@tname", TextBox1.Text)
        cm.Parameters.AddWithValue("@kind", DropDownList1.SelectedItem.ToString)

        If con.State = Data.ConnectionState.Closed Then
            con.Open()
        End If
        Try
            cm.ExecuteNonQuery()
            lbl.Text = TextBox1.Text & "  was Saved!"
            lbl.ForeColor = Drawing.Color.Green
            lbl.Visible = True
            If con.State = Data.ConnectionState.Open Then
                con.Close()
            End If
        Catch ex As Exception
            If con.State = Data.ConnectionState.Open Then
                con.Close()
            End If

            Response.Write("<h3>" & Err.Description & "</h3>")
        End Try

المشكلة انه لابد من نقر كل زر على حدة لم اتمكن من الوصول للحدث من زر واحد في الصفحة الرئيسية

وفي الصفحة الرئيسية يوجد:
ضمن الوسم Form

وضعت الاتي:
كود :
<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <div>
        <asp:Button ID="Button1" runat="server" Text="add user control" />
    </div>
    <hr />
        <asp:Panel ID="Panel1" runat="server">
        </asp:Panel>
    <hr />
    <div>
    </div>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="button1" EventName="click" />

    </Triggers>
    </asp:UpdatePanel>

وعد حدث تحميل الصفحة كتبت
كود :
If con.State = Data.ConnectionState.Open Then
            con.Close()
        End If

        If IsPostBack Then
            Dim num As Integer = CInt(ViewState("Counter"))


            For i As Integer = 0 To num - 1
                Dim uc1 = DirectCast(LoadControl("~\mcontrols\wuc1.ascx"), mcontrols_wuc1)

                Panel1.Controls.Add(uc1)

            Next
        Else
            ViewState("Counter") = 1

        End If

وعند زر تحميل عنصر التحكم webusercontrol.ascx
كتبت
كود :
ViewState("Counter") = CInt(ViewState("Counter")) + 1



ارجو ممن لديه المعلومة كيف نصل لحدث الزر بعد تحميله الى الصفحة ان يكرمنا به.
هذه محاولتي ارجو ان تلبي ولو عشر المطلوب
اعتقد المطلوب ادخال بيانات إلى قاعدة البيانات بشكل متكرر ،

أبحث عن ادخال البيانات بواسطة القريد فيو .
أخ سعود لم أتمكن من تحميل الملف
حريف برمجة كتب :اعتقد المطلوب ادخال بيانات إلى قاعدة البيانات بشكل متكرر ،

أبحث عن ادخال البيانات بواسطة القريد فيو .
أخي حريف برمجة
أنا لم استخدم أداة القريد فيو لأنني لم أجد طريقة تسمح للمستخدم بالتعامل معها وهي فارغه ومن ثم ادخال البيانات إليها من الصفر
قمت بالتعديل والمحاولة المستمرة حتى وصلت إلى هذه النتيجه في الملف المرفق والتي توقفت فيها عند عملية الحفظ
dena كتب :أخ سعود لم أتمكن من تحميل الملف



حملته الحين ورفعته لموقع ثاني
مو صحيح ممكن اضافة بيانات من الصفر وممكن كل شي

حملي المرفق وجربي براحتك واي غموض انا موجود ....
الصفحات : 1 2