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

data Gird and CheckBox

مغلق
بدأه winter في 6 يوليو 2005 · 7 رد · 1,012 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف يمكن إدارج إداة CheckBox في داخل الداتا جيرد ,, انا شبه متأكد انها من خصائص الداتا جيرد من التيبل ستايل ,, لكن حاولت مافي فايده ,, المهم وهل يمكن اضافت CheckBox في الفورم بحث لو تم التأشير على CheckBox للسجل المعروض حالياً في الفور يتم التأشير ايضا على السجل في الداتا جيرد

وكل الشكر لكم ..

#2

السلام عليكم بالنسبة للسؤال الأول يكون كالتالي

Dim grdColStyle4 As New DataGridBoolColumn
        With grdColStyle4
            .MappingName = "underTake"
            .HeaderText = "باشر العمل"
            .Width = 70
            .TrueValue = True
            .FalseValue = False
            .AllowNull = False
        End With

والله أعلم

في المثال يتضح المقال

#3

كل الشكر والتقدير للغملاسي على التجاوب السريع .

تم تجربه الكود ولم يظهر لي CheckBox في داخل الداتا جيرد !!

ولم توضح أخي الغملاسي هل يتم إضافة تيبل ستايل في الداتا جيرد ؟ هل ممكن ان يكون هذا السبب .

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

#4

السلام عليكم

قم بلصق النصوص البرمجية في مشروع جديد

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Friend WithEvents DataGrid2 As System.Windows.Forms.DataGrid
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.DataGrid2 = New System.Windows.Forms.DataGrid
        CType(Me.DataGrid2, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'DataGrid2
        '
        Me.DataGrid2.DataMember = ""
        Me.DataGrid2.HeaderForeColor = System.Drawing.SystemColors.ControlText
        Me.DataGrid2.Location = New System.Drawing.Point(8, 8)
        Me.DataGrid2.Name = "DataGrid2"
        Me.DataGrid2.Size = New System.Drawing.Size(352, 168)
        Me.DataGrid2.TabIndex = 0
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(376, 189)
        Me.Controls.Add(Me.DataGrid2)
        Me.Name = "Form1"
        Me.Text = "Form1"
        CType(Me.DataGrid2, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region



    Dim ds As New DataSet("ds")
    Dim tb As DataTable = New DataTable("tb")
    Dim row As DataRow
    Dim myDataColumn As DataColumn




    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myDataColumn = New DataColumn
        myDataColumn.DataType = System.Type.GetType("System.Int32")
        myDataColumn.ColumnName = "id"
        myDataColumn.Caption = "ID"
        tb.Columns.Add(myDataColumn)
        ' Create second column.
        myDataColumn = New DataColumn
        myDataColumn.DataType = System.Type.GetType("System.Boolean")
        myDataColumn.ColumnName = "Admin"
        myDataColumn.Caption = "Admin"
        ' Add the column to the table.
        tb.Columns.Add(myDataColumn)
        Dim i As Integer
        For i = 0 To 2
            row = tb.NewRow()
            row("id") = i
            row("Admin") = True
            tb.Rows.Add(row)

        Next i

        Me.ds.Tables.Add(tb)
        Me.DataGrid2.DataSource = ds
        Me.DataGrid2.DataMember = "tb"
        BindCalcuationDataGrid()
    End Sub




#Region " Data Grids Binding "
    Sub BindCalcuationDataGrid()

        Me.DataGrid2.TableStyles.Clear()

        Dim grdTableStyle1 As New DataGridTableStyle
        With grdTableStyle1
            .MappingName = Me.ds.Tables(0).TableName
        End With

        Dim grdColStyle1 As New DataGridTextBoxColumn
        With grdColStyle1
            .MappingName = "id"
            .HeaderText = "الرقم التسلسلي"
            .Width = 150
            .Alignment = HorizontalAlignment.Center
            .NullText = String.Empty
        End With

        Dim grdColStyle2 As New DataGridBoolColumn
        With grdColStyle2
            .MappingName = "admin"
            .HeaderText = " المستخدم "
            .Width = 90
            .Alignment = HorizontalAlignment.Center
            .FalseValue = False
            .TrueValue = True
            .NullValue = False
        End With


        grdTableStyle1.GridColumnStyles.AddRange _
                  (New DataGridColumnStyle() {grdColStyle1, grdColStyle2})
        Me.DataGrid2.TableStyles.Add(grdTableStyle1)
    End Sub

#End Region


End Class

CheckBoxWithDG.zip

في المثال يتضح المقال

#5

سلام عليكم .

كل الشكر للغملاسي . ولكن لم تصلك فكرتي بمعنى الكود الذي كتبته انت نعم يضع لك شيك بوكس داخل الدااتا جيرد ولكن لن تخزن في قاعدة البيانات لعدم وجود جدول يحتوي على قيم الشيك بوكس (0 أو 1) ..

فكرتي تتمحور حول وجود عمود في قاعدة بيانات (sql) ويكون فيها عنصر تحكم (مثل الاكسس) (ولكن لم اجدها في sql ) بحيث يتم حفظها في القاعدة عند تغيير اي سجل .

شكراً مرة اخرى

#6

السلام عليكم

بل يسجل في قاعدة البيانات B)

في الـ SQL إجعل نوع بيانات العامود من نوع bit

وهي إختصار إلى Bit Wise Operator وهو العد الثنائي Binary أما صفر أو واحد

بالتوفيق إن شاء الله .

في المثال يتضح المقال

#7

شكراً ياغملاسي .

مع كل التحيه والتقدير .,

#8

الأخ العزيز الغملاسي

لدي فكرة وقرأت هذا الموضوع وفكرتي شبيهه وليست مطابقة تمام وهي كالتالي : اريد ان اضيف checkBox ومنه يقوم المستخدم باختيار الصفوف المطلوبة وبعدها يضغط على button وهنا اريد ان اقراء جميع الصفوف في الداتا جريد واقوم باجراء معين عليها في قاعدة البيانات

انا اضفت الكود التالي الى الكود

Dim grdColStyle2 As New DataGridBoolColumn
       With grdColStyle2
           .MappingName = ""
           .HeaderText = " اختر"
           .Width = 90
           .Alignment = HorizontalAlignment.Center
           .FalseValue = False
           .TrueValue = True
           .NullValue = False
       End With

وظهر لي بالفعل الـcheckBox ولكن لدي مشكلتين وهي:

1- ان الـcheckbox له ثلاث حالات وهي اما فارغ تمام او به علامة صح سوداء او علامة صح رمادي فتح وانا فقط اريد اما صح او فارغ

2- اريد ان اقراء قيمة الـcheckBox فوضعت الامر التالي في الحدث dgresult_click اي عندما يضغط المستخدم على احد صفوف الـdatagrid والتي اطلق عليها هنا اسم dgResult

messagebox.show(dgresult.item(currentrowindex,0).tostring)

ولكن الرسالة تأتي فارغة من اي كتابة فما هو الحل لتميز هل الـcheckbox تم وضع علامة صح عليه ام لا؟ علما بأن القيمة الافتراضية يفترض ان تكون فارغة للجميع؟؟

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

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

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