6.3.1. მართვის ელემენტი DataGrid

მონიშნეთ მართვის ელემენტი DataGrid. თითი დააჭირეთ თაგუნას  მარჯვენა ღილაკს და გამოსულ კონტექსტურ მენიუში მონიშნეთ სტრიქონი Show Smart tag. გამოვა მენიუ DataGridTasks/სურ. 6.29/.

სურ. 6.29. DataGridTasks

მონაცემების ბაზასთან დაკავშირება

·            სურ. 6.30-ზე ველში Choose Data Source ჩამოშლილ მენიუში მონიშნეთ სტრიქონი .. Data source/სურ. 6.31/

 სურ. 6.30. მონაცემების წყაროს შესარჩევად ბრძანების მიცემა

·            გამოვა ფანჯარა, რომელშიც მონიშნეთ იარლიყი Access Database და დააჭირეთ ღილაკს OK/სურ. 6.31/:

სურ. 6.31. მონაცემების წყაროს არჩევა. მონიშნულია Access

·            გამოვა ფანჯარა. დააჭირეთ ღილკას Browse. გამოვა ფანჯარა Select Microskft AccessdataBase. მონიშნეთ ამ ფანჯარაში ბაზის სახელი და დააჭირეთ ღილაკს OK. დაბრუნდებით წინა ფანჯარაში Choose a Database, რომელშიც დააჭირეთ ღილაკს Next. გამოვა ფანჯარა SQL-ის ინსტრუქციის ფორმირებისთვის/სურ. 6.32/.

სურ. 6.32. დიალოგური ფანჯარა SQL-ის ინსტრუქციის ფორმირებისთვის

დიალოგური ფანჯრის Configurate Data Source ველში Name ჩამოწერილია მონაცემების ბაზაში არსებული ცხრილების და შეკითხვების დასახელებები. ცხრილის დასახელების შერჩევის შემდეგ ველში Column ჩამოწერილია ცხრილის სვეტების (ველების) დასახელებები. დავუშვათ, შეარჩიეთ ცხრილი tbstudentiz, მაშინ Columns ჩამოიწერება ამ ცხრილის სვეტების დასახელებები.

მონიშნეთ სვეტების დასახელებები, რომელთა გამოტანაც გვსურთ მართვის ელემენტზე DataGrid. მონიშვნის თანმიმდევრობა განაპირობებს Select ინსტრუქციაში ველების თანმიმდევრობას. ამავე დროს ავტომატურად იწერება SQL ინსტრუქციის ნაწილი FROM/სურ. 6.33/.

სურ. 6.33. ფორმირებული SQL ინსტრუქცია SELECT და FROM განყოფილებებით

 

SQL ინსტრუქციის ნაწილის Where ფორმირება

დიალოგურ ფანჯარაში Configurate Data Source დააჭირეთ ღილაკს WHERE. გამოვა ფანჯარა WHERE- ფორმირებისთვის/სურ. 6.34/.

სურ. 6.34. დიალოგური ფანჯარა QL ინსტრუქციის WHERE ფორმირებისთვის

·            ამორჩეული სტრიქონი Control მიუთითებს, რომ ამორჩევის პარამეტრის მნიშვნელობა ჩაწერილი იქნება მომხარებლის მიერ TextBox-ში ან სხვა ანალოგიურ მართვის ელემენტში. ველში Parameter properties Control_ID მიუთითეთ ჩვენ მიერ დაპროექტებული TextBox-ის სახელი. ამ ოპერაციების შესრულების შემდეგ დააჭირეთ ღილაკს Add. ღილაკზე დაჭერის შემდეგ ველში SQL Expression სისტემის მიერ ჩაიწერება ინსტრუქციის ფორმირებული ნაწილი. დააჭირეთ ღილაკს OK /სურ.35/.

·            შეარჩიეთ მონაცემების ბაზიდან მონაცემების ამორჩევის პარამეტრები. ჩვენ გვსურს TextBox-ში გვარის (ან გვარის ნაწილის) ჩაწერა და CommandButton ღილაკზე დაწკაპუნების შემდეგ მონაცემების ბაზიდან ამოირჩევა ყველა იმ სტუდენტის გვარი, რომელიც იწყება TextBox-ში ჩვენ მიერ ჩაწერილი ასოებით (მაგ., ლო”). მონაცემების ბაზიდან მონაცემების ამორჩევის შემდეგ პარამეტრების დასაპროექტებლად და შესაბამისად SQL ინსტრუქციის WHERE- ნაწილის ავტომატურად დასაპროექტებლად: ველში Column სიიდან ამოარჩიეთ გვარი”, ველში Operation სიიდან ამოარჩიეთ LIKE, ხოლო ველში Source სიიდან Control. 

 სურ. 6.35. SQL ინსტრუქციის ფორმირებული WHERE ნაწილი

OK ღილაკზე დაჭერის შემდეგ დაბრუნდებით ფანჯარაში, რომელშიც ORDER BY ღილაკზე დაჭერით ანალოგიურად მიუთითეთ, რომელი ველით გსურთ დახარისხება. ჩვენ შევარჩიეთ გვარი. საბოლოოდ SQL ინსტრუქცია მიიღებს სახეს /სურ. 6.36/.

სურ. 6.36. დაპროექტების შემდეგ მიღებული SQL ინსტრუქცია

თუ გსურთ თქვენ მიერ დაპროექტებული SQL ინსტრუქციის ტესტირება, მაშინ დიალოგურ ფანჯარაში Configurate Data Source დააჭირეთ ღილაკს Next. გამოვა ფანჯარა, რომელშიც დააჭირეთ ღილაკს test Query. ამ ღილაკზე დაჭერის შემდეგ გამოვა ფანჯარა, რომლის ველში Value ჩაწერეთ საძებნი მნიშვნელობა. ჩვენ ჩავწერეთ "ლო” /სურ. 6.37/

სურ. 6.37. SQL ინსტრუქციის ტესტირება

ამ ფანჯრით მოწმდება ჩვენ მიერ ფორმულირებული SQL ინსტრუქციით მიღებული შედეგი. ფანჯარაში Parameter Values Editor OKღილაკზე დაჭერის შემდეგ დავბრუნდებით ფანჯარაში, რომელშიც მოცემულია ძებნის შედეგი/სურ. 6.38/.

სურ. 6.38. SQL ინსტრუქციის ტესტირების შედეგი

ფანჯარაში Configu Data Source-AccessdataSource1 დააჭირ ღილაკს Finish.

მართვის ელემენტზე გამოტანილი ცხრილის გაფორმება

ცხრილის გაფორმება ხორციელდება დიალოგური ფანჯრით DataGrid Properties-ის/სურ.6.39/ საშუალებით.

1.       ცხრილის სათაურის დაწერა

თუ გვსურს, რომ ცხრილის სათაურის დასახელებები განსხვავდებოდნენ ბაზაში არსებული ცხრილის სვეტების დასახელებებისგან, DataGrid-ის თვისებას AutoGenerateColumns მიანიჭ მნიშვნელობა False.

სურ. 6.39. დიალოგური ფანჯარა DataGrid Properties

დიალოგურ ფანჯარაში DataGrid Properties მონიშნეთ იარლიყი Column. ველში  Avialabe column მონიშნეთ სტრიქონი Bound Column და დააჭირეთ ღილაკს è. ველში Header text დაწერეთ სვეტის სათაურის დასახელება, რომელიც უნდა გამოჩნდეს მართვის ელემენტზე. ველში Data Field დაწერეთ ამ სვეტის სახელი ბაზაში არსებული ცხრილის მიხედვით. თუ გსურთ, რომ DataGrid-ში გამოჩენილი მონაცემების მხოლოდ წაკითხვა იყოს ნებადართული, მაშინ მონიშნეთ ნიშნაკი Read only /სურ. 6.40/.

სურ. 6.40. DataGrid-ში ცხრილის სათაურის დაპროექტება

 

ცხრილისთვის ფორმატიზაციის ატრიბუტების დაყენება.

დიალოგურ ფანჯარაში DataGrid Properties მონიშნეთ სტრიქონი Format. გამოვა ფანჯარა, რომელშიც შეგიძლიათ შეარჩიოთ სათაურისთვის, ცალკეული სვეტისთვის და .. შრიფტი, შრიფტის სტილი, ზომა, ფონი, შრიფტის ფერი და სხვა/სურ. 6.41/.

სურ. 6.41. დიალოგური ფანჯარა ცხრილისთვის ფორმატიზაციის ატრიბუტების მისაცემად DataGrid-ში

DataGrid-ის შევსება მონაცემების ბაზიდან ამორჩეული მონაცემებით

განვიხილოთ მართვის ელემენტის DataGrid-ის მონაცემების ბაზიდან მონაცემებით შევსების ვარიანტი:

·            მონაცემების ბაზასთან დაკავშირება;
·            ადაპტერის აგება (OleDbdataAdapter-ის ან SqlDataAdapter-ის კლასის ეგზემპლარი);
·            ადაპტერის გამოყენებით DataSet-ის კლასის ეგზემპლარის შექმნა;
·            მართვის ელემენტი DataGrid თვისებით დაკავშირებულ იქნეს საჭირო ცხრილთან. 
დასმული ამოცანის რეალიზაციის პროგრამული კოდი შემდეგია: 

 

Private Sub Page_Load(ByVal sender As System.Object, _

  ByVal e As System.EventArgs) Handles MyBase.Load

        If Not IsPostBack Then

            Dim ds As DataSet = New DataSet()

            Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" _

            & Server.MapPath("ekonfakulteti.mdb")

            Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT TOP 5 " _

            & "gvari, saxeli FROM tbstudentiz", conn)

            da.Fill(ds)

       DataGrid1.DataSource = ds.Tables(0).DefaultView

        DataGrid1.DataBind()

        End If

    End Sub

გაანგარიშებების შესრულება DataGrid-ში

მართვის ელემენტის  დაპროექტებისას დავამატოთ ახალი სვეტი. პროგრამის შესრულების დროს მოვახდინოთ გაანგარიშება და შედეგი ჩავწეროთ ამ სვეტში.

დავუშვათ, მონაცემების ბაზიდან ამოარჩიეთ საქონლის დასახელება, შეძენის ფასი. მართვის ელემენტის დაპროექტებისას დაამატეთ ახალი სვეტი და დაარქვით მასრეალიზაციის ფასი”. დავუშვათ, საჭიროა შეძენის ფასი გაზარდოთ 15%-ით.

იმისათვის, რომ ველების გენერაცია პროგრამული კოდით განხორციელდეს (და არა ავტომატურად ცხრილის ჩატვირთვისას), საჭიროა მართვის ელემენტის DataGrid თვისება AutoGenerateColumns=False

 

 html კოდი შემდეგია

 <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

 

    <title>Untitled Page</title>

 </head>

<body>

    <form id="form1" runat="server">

    <div>

         <br />     

 <asp:DataGrid ID="DataGrid1" runat="server" CellPadding="4" ForeColor="#333333"

            GridLines="None" Style="font-family: AcadNusx" AutoGenerateColumns="False">

            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />

            <EditItemStyle BackColor="#2461BF" />

            <SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />

            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />

        <AlternatingItemStyle BackColor="White" />

            <ItemStyle BackColor="#EFF3FB" />

            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />

            <Columns>

                <asp:BoundColumn DataField="das" HeaderText="dasaxeleba"></asp:BoundColumn>

                <asp:BoundColumn DataField="sfasi" HeaderText="SeZenis fasi"></asp:BoundColumn>

                <asp:BoundColumn DataField="rfasi" HeaderText="realizaciis fasi"></asp:BoundColumn>

            </Columns>

        </asp:DataGrid>        

        &nbsp;<br />

         <br />

        </div>

    </form>

</body>

</html>

 
პროგრამული კოდი შემდეგია:
 

 Private Sub Page_Load(ByVal sender As System.Object, _

     ByVal e As System.EventArgs) Handles MyBase.Load

        If Not IsPostBack Then

            Dim ds As DataSet = New DataSet()

            Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" _

            & Server.MapPath("ekonfakulteti.mdb")

            Dim da As OleDbDataAdapter = New _

            OleDbDataAdapter("SELECT das, sfasi FROM tbsaqoneli", conn)

            da.Fill(ds)

            Dim dc As DataColumn

            dc = New DataColumn("rfasi", Type.GetType("System.Single"))

            dc.Expression = "sfasi * 1.15"

            ds.Tables(0).Columns.Add(dc)

DataGrid1.DataSource = ds.Tables(0).DefaultView

            DataGrid1.DataBind()

        End If

 

    End Sub

 

დახარისხება DataGrid-ში

ჩვენი ამოცანაა მართვის ელემენტში DataGrid არსებული ცხრილის სვეტის დასახელებაზე დაწკაპუნებით განხორციელდეს მონაცემების დახარისხება. ამ ამოცანის გადასაწყვეტად:

·            მართვის ელემენტის დაპროექტებისას მიუთითეთ სვეტები, რომლებითაც შესაძლებელია დახარისხება;

·            შექმენით პროცედურა, რომელიც უზრუნველყოფს გვერდის ჩატვირთვისას მონაცემების ბაზასთან დაკავშირებას. ამავე დროს მოწმდება ამ გვერდის არსებობა PostBack-ზე და მისი არსებობის შემთხვევაში გამოიძახება ჩვენ მიერ შექმნილი პროცედურა BindData;

·           შექმენით პროცედურა,  რომელიც დაკავშირებულია DataGrid-ში მოვლენასთან OnSortCommand არგუმენტთან.  

წინასწარ მითითებულ ველებში დახარისხება ზრდადობით ან კლებადობით

დავიტანოთ DataGrid მართვის ელემენტი გვერდზე. სისტემის მიერ ავტომატურად გენერირებული html კოდი შემდეგია:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

 

    <title>Untitled Page</title>

 </head>

<body>

    <form id="form1" runat="server">

    <div>

               <br />

        &nbsp;<asp:DataGrid ID="DataGrid1" runat="server" AllowSorting="True" AutoGenerateColumns="False"

            Font-Names="AcadNusx">

            <Columns>

                <asp:TemplateColumn HeaderText="gvari" SortExpression="gvari">

                    <ItemTemplate>

                        <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.gvari") %>'></asp:Label>

                    </ItemTemplate>                    

                </asp:TemplateColumn>

                <asp:TemplateColumn HeaderText="saxeli" SortExpression="saxeli desc">

velisTvis “saxeli” miTiTebulia, rom daxarisxeba ganxorcieldes klebadobiT

                    <ItemTemplate>

                        <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.saxeli") %>'></asp:Label>

                    </ItemTemplate>

                     </asp:TemplateColumn>

            </Columns>

        </asp:DataGrid>

         <br />

        </div>

    </form>

</body>

</html>

დახარისხების განსახორციელებლად საჭიროა:

1.     მონაცემების ბაზასთან დაკავშირება;

2.    მართვის ელემენტის შევსება მონაცემებით;

3.    ცხრილში სვეტების დასახელებაზე დაწკაპუნებისას დახარისხება.

·      მონაცემების წყაროსთან დაკავშირება

Private Sub binddata()

        Dim ds As DataSet = New DataSet()obieqtTa klasis DataSet-ის ეგზემპლარის შექმნა

        Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" _

        & Server.MapPath("ekonfakulteti.mdb") მონაცემების ბაზასთან   დაკავშირება

        Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT gvari, saxeli FROM tbstudentiz", conn) OleDbDataAdapter-ის დაკავშირება მონაცემების ბაზასთან და Fill(ds) OleDbDataAdapter-ის მონაცემებით შევსება ობიექტიდან DataSet

ds.Tables(0).DefaultView.Sort = ViewState("sort")

DataGrid1.DataSource = ds.Tables(0).DefaultView

   DataGrid1.DataBind() ცხრილის შევსება მონაცემებით

    End Sub

·            გვერდის ჩატვირთვისთანავე მართვის ელემენტის შევსება მონაცემებით

  Private Sub Page_Load(ByVal sender As System.Object, _

  ByVal e As System.EventArgs) Handles MyBase.Load

        If Not IsPostBack Then

            binddata()

        End If

    End Sub

·            დახარისხება

Protected Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand

 

    Me.ViewState("sort") = e.SortExpression

       binddata()

    End Sub

მართვის ელემენტში დახარისხების განხორციელება პროგრამულად ზრდადობით და კლებადობით 

წინა მაგალითისგან განსხვავებით, მითითებულ ველებში მართვის ელემენტის ცხრილზე დაწკაპუნებისას მონაცემების დახარისხება ხორციელდება ზრდადობით ან კლებადობით

html კოდი შემდეგია

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Untitled Page</title>

 </head>

<body>

    <form id="form1" runat="server">

    <div>     

        <br />

        &nbsp;<asp:DataGrid ID="DataGrid1" runat="server" AllowSorting="True" AutoGenerateColumns="False"

            Font-Names="AcadNusx">

            <Columns>

                <asp:TemplateColumn HeaderText="gvari" SortExpression="gvari">

                    <ItemTemplate>

                        <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.gvari") %>'></asp:Label>

                    </ItemTemplate>                    

                </asp:TemplateColumn>

                <asp:TemplateColumn HeaderText="saxeli" SortExpression="saxeli">

                    <ItemTemplate>

                        <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.saxeli") %>'></asp:Label>

                    </ItemTemplate>

                     </asp:TemplateColumn>

            </Columns>

        </asp:DataGrid>        

         <br />

        </div>

    </form>

</body>

</html>

პროგრამული კოდი შემდეგია:

·            მონაცემების წყაროსთან დაკავშირება ხორციელდება წინა მაგალითში მოტანილი პროგრამით binddata;

·            გვერდის ჩატვირთვისთანავე მართვის ელემენტის შევსება მონაცემებით ხორციელდება წინა მაგალითში მოტანილი პროგრამით;

·            დახარისხება ხორციელდება პროგრამით:

Protected Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand

 

        Me.ViewState("sort") = e.SortExpression

 

     If Me.DataGrid1.Columns(0).SortExpression = e.SortExpression _

        Or Me.DataGrid1.Columns(1).SortExpression = e.SortExpression Then

   If e.SortExpression.IndexOf("desc") <> -1 Then                Me.DataGrid1.Columns(0).SortExpression = Me.DataGrid1.Columns(0).SortExpression.Replace("  desc", "")

aq desc-is win unda iyos ori intervalis niSani

               

Me.DataGrid1.Columns(1).SortExpression = Me.DataGrid1.Columns(1).SortExpression.Replace("  desc", "")

'აქაც desc-ის წინ უნდა იყოს ორი ინტერვალის ნიშანი

 

            Else                Me.DataGrid1.Columns(0).SortExpression += "  desc"

'saWiroa iyos ori intervalis niSani

Me.DataGrid1.Columns(1).SortExpression += "  desc"

' საჭიროა იყოს ორი ინტერვალის ნიშანი

            End If

        End If

    binddata()

    End Sub

 

მონაცემების ბაზაში ცვლილებების განხორციელება მართვის ელემენტის DataGrid-ის საშუალებით

მართვის ელემენტში DataGrid ჩაშენებულია მონაცემების ბაზაში ცვლილებების ჩატარების შესაძლებლობა. მაგ., მეხუთე სტრიქონის რედაქტირებისთვის საჭიროა მართვის ელემენტის DataGrid  თვისებას EditItemIndex მივანიჭოთ მნიშვნელობა 4 (სტიქონების ნომერაცია იწყება ნულიდან). რედაქტირების რეჟიმიდან გამოსასვლელად საჭიროა თვისებას  EditItemIndex მიანიჭოთ მნიშვნელობა -1. ყველაზე რთული მომენტია მონაცემების ბაზიდან მონაცემების მოძებნა და ცვლილების შეტანის შემდეგ მათი  ბაზაში ჩაწერა.

რედაქტირების, რედაქტირების გაუქმების და რედაქტირებული მნიშვნელობის შენახვისთვის (EditCommand, CancelCommand,  UpdateCommand) DataGrid-Si გათვალისწინებულია სპეციალური ტიპის სვეტი ButtonColumn.

1.    გვერდზე დაიტანეთ მართვის ელემენტი DataGrid;

2.    ვიზუალური დაპროექტების რეჟიმში მართვის ელემენტზე დაიტანეთ სპეციალური  ტიპის სვეტი ButtonColumn;

3.    ButtonColumn-ის სტრიქონებში ჩაწერეთ: რედაქტირება, შენახვა, გაუქმება. HTML კოდში მათ შეესაბამება:  EditText=„რედაქტირებa”; UpdateText=„შენახვა CancelText=„გაუქმება

html კოდი შემდეგია:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Untitled Page</title>

 </head>

<body>

    <form id="form1" runat="server">

    <div>

        <br />

        <asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False">

            <Columns>

                <asp:EditCommandColumn CancelText="gauqmeba" EditText="redaqtireba" UpdateText="Senaxva">

                </asp:EditCommandColumn>

                <asp:BoundColumn DataField="nomeri" HeaderText="nomeri"></asp:BoundColumn>

                <asp:BoundColumn DataField="gvari" HeaderText="gvari"></asp:BoundColumn>

                <asp:BoundColumn DataField="saxeli" HeaderText="saxeli"></asp:BoundColumn>

            </Columns>

        </asp:DataGrid>        

         <br />

        </div>

    </form>

</body>

</html>

მონაცემების ბაზიდან მონაცემების მოსაძებნად და მართვის ელემენტში გამოსატანად გამოვიყენოთ (დავწეროთ) მეთოდი (პროგრამა) binddata1.

 

Private Sub binddata1() ' redaqtirebisTvis

        Dim ds As DataSet = New DataSet()

        Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" _

        & Server.MapPath("ekonfakulteti.mdb")

        Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT nomeri, gvari, saxeli FROM tbstudentiz", conn)

        da.Fill(ds)

        DataGrid1.DataSource = ds.Tables(0).DefaultView

        DataGrid1.DataKeyField = "nomeri"

        DataGrid1.DataBind()

    End Sub

მონაცემების რედაქტირების და რედაქტირების გაუქმების დამმუშავებელი დაკავშირებულია შესაბამისად მოვლენებთან EditCommand, CancelCommand. აქ ხორციელდება თვისებისთვის EditItemIndex მნიშვნელობის მინიჭება.

  

 Protected Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand

        DataGrid1.EditItemIndex = e.Item.ItemIndex

        binddata()

    End Sub

 

Protected Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand

        DataGrid1.EditItemIndex = -1

        binddata()

    End Sub

BoundColumn-ში მონაცემების დაკავშირების დროს გენერირებული ცხრილის ყველა უჯრაში ისმება ლიტერალი LiteralControl მონაცემებით მონაცემების ბაზის შესაბამისი ველიდან ან  მხოლოდ რედაქტირებული სტრიქონები.

მართვის ელემენტში DataGrid მონაცემების წაშლა

თუ  DataGrid დაკავშირებულია მართვის ელემენტთან, მაშინ საჭიროა თვისებას RecordSource მიანიჭოთ "" (ცარიელი სტრიქონი) და შემდეგ გამოიყენოთ მეთოდი Refresh.

Sub Command1_Click()

Data1.RecordSource = ""

'устанавливаем RecordSource в нулевую строку

Data1.Refresh

SSDataGrid1.Refresh

End Sub

თუ DataGrid დაკავშირებული არ არის მართვის ელემენტთან, მაშინ თვისებისთვის Rows ნულის მინიჭება წაშლის მონაცმებს DataGrid-ში.

 

მართვის ელემენტში DataGrid-ის უჯრებისთვის ფერის და შრიფტის შეცვლა

ფერის და რიფტის შეცვლა შესაძლებელია თვისებების (RowCellForeColor, RowCellBackColor, RowCellItalic) მნიშვნელობების შეცვლით. დავაკავშიროთ ცვლილებები ფორმის მოვლენასთან RowLoaded, რომელიც წამოიქმნება ფორმის პირველად ჩატვირთვის დროს. შემდეგ მაგალითში ნულოვანი სვეტი იქნება წითელი ფერის, შრიფტი კი  დახრილი და თეთრი ფერის:

Sub DataGrid1_RowLoaded (BookMark As String, _

RowNum As Long)

SSDataGrid1.RowCellForeColor(0) = _

RGB(255,255,255)

SSDataGrid1.RowCellBackColor(0) = RGB(255,0,0)

‘'striqonis feri gaxdeba wiTeli

SSDataGrid1.RowCellItalics(0) = True

‘'შრიფტი გახდება დახრილი

End Sub

შეიძლება თვისებაში EvalRowNumber მივუთითოთ სტრიქონების რაოდენობა და შემდეგ შევცვალოთ ფერის, შრიფტის პარამეტრები.

Sub Command1_Click()

SDataGrid1.EvalRowNumber = 10

'სტრიქონების რაოდენობის მითითება

SSDataGrid1.RowCellForeColor(2) = RGB(255,255,255)

'მეორე სვეტში შრიფტი დაიწერება თეთრ ფერად

SSDataGrid1.RowCellBackColor(2) = RGB(255,0,0)

'მეორე სვეტის ფონი წითელი გახდება

SSDataGrid1.RowCellItalics(2) = True

'მეორე სვეტში ტექსტი დაიწერება დახრილად

End Sub