ITfjernundervisning

ASP.NET / Dataset og datagrid objektet / Opret ny post

Opret ny post

At oprette en ny post er stort set lige så simpelt

  • Opret en knap/link der skal klikkes på når man vil have en ny række
  • Skriv den tilhørende kode

 

Objekt kodning

I klassen skal vi have skrevet en metode, er opretter et nyt projekt og det viser sig, at vi også får brug for at vide, hvor mange projekter, der er i alt:

C#

public void Nyt()
{
 DataRow objRow; 
 //Ny række 
 objRow = _Projekter.Tables[0].NewRow(); 
 //Find nyt ID nummer 
 int ID = Convert.ToInt16(_Projekter.Tables[0].Rows[_Projekter.Tables[0].Rows.Count - 1]["ID"]); 
 ID += 1; 
 objRow["ID"] = ID; 
 _Projekter.Tables[0].Rows.Add(objRow); 
 //Opdater data 
 Opdater();
}

public int AntalProjekter()
{
 return (int)_Projekter.Tables[0].Rows.Count;
}

VB

    Public Sub Nyt()
        Dim objRow As DataRow = _Projekter.Tables(0).NewRow()
        Dim ID As Integer = Convert.ToInt16(_Projekter.Tables(0).Rows(_Projekter.Tables(0).Rows.Count - 1)("ID"))
        ID += 1
        objRow("ID") = ID
        _Projekter.Tables(0).Rows.Add(objRow)
        Opdater()
    End Sub

    Public Function AntalProjekter() As Integer
        Return _Projekter.Tables(0).Rows.Count
    End Function

På web-formen skal der indsættes en knap, som brugeren kan klikke på, når han vil oprette et nyt projekt. Knappens eventhandler kan se sådan her ud:

C#

private void butNytProjekt_Click(object sender, System.EventArgs e)
{
 _Projekter.Nyt();
 sortfield = null;
 sortorder = null;
 // nulstil sortering
 int recordCount = _Projekter.AntalProjekter();
 if (recordCount > 1 && dgridProjekter.AllowPaging) 
 { 
  recordCount -= 1; 
  dgridProjekter.CurrentPageIndex = (int)(recordCount / dgridProjekter.PageSize); 
  dgridProjekter.EditItemIndex = recordCount % dgridProjekter.PageSize; 
 } 
 else 
 { 
  dgridProjekter.EditItemIndex = recordCount -1; 
 }
 DoDataBind();
}

VB

    Private Sub butNytProjekt_Click(ByVal sender ...
        _Projekter.Nyt()
        sortfield = Nothing
        sortorder = Nothing
        ' nulstil sortering
        Dim recordCount As Integer = _Projekter.AntalProjekter()
        If (recordCount > 1 And dgData.AllowPaging) Then
            recordCount -= 1
            dgData.CurrentPageIndex = (recordCount / dgData.PageSize)
            dgData.EditItemIndex = recordCount Mod dgData.PageSize
        Else
            dgData.EditItemIndex = recordCount - 1
        End If
        DoDatabind()
    End Sub

 

Klassisk kodning

VB.NET

    Private Sub butNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butNew.Click
        Dim dsetAndeby As New DataSet
        dsetAndeby = GetDataset()
        Dim objTable As DataTable
        Dim objRow As DataRow
        objTable = dsetAndeby.Tables(0)
        'Ny række
        objRow = objTable.NewRow()
        'Find nyt ID nummer
Dim intID as Integer
        intID = dsetAndeby.Tables(0).Rows(dsetAndeby.Tables(0).Rows.Count - 1).Item("ID")
        intID += 1
        objRow.Item("ID") = intID
        objTable.Rows.Add(objRow)
        'Opdater data
        dsetAndeby.WriteXml(Server.MapPath("Andeby.xml"))
        'Sæt sæt rækken til redigerin
        Dim recordCount As Integer = dsetAndeby.Tables(0).Rows.Count
        If recordCount > 1 And dgridAndeby.AllowPaging Then
            recordCount -= 1
            dgridAndeby.CurrentPageIndex = recordCount \ dgridAndeby.PageSize
            dgridAndeby.EditItemIndex = recordCount Mod dgridAndeby.PageSize
        Else
            dgridAndeby.EditItemIndex = recordCount - 1
        End If
        DoDatabind()
    End Sub

C#

 private void ButNew_Click(object sender, System.EventArgs e)
  {
   DataSet dsetAndeby = new DataSet();
   dsetAndeby = GetDataset();
   DataTable objTable;
   DataRow objRow;
   objTable = dsetAndeby.Tables[0];
   //Ny række
   objRow = objTable.NewRow();
   //Find nyt ID nummer
   int PersonID = Convert.ToInt16(dsetAndeby.Tables[0].Rows[dsetAndeby.Tables[0].Rows.Count - 1]["ID"]);
   PersonID += 1;
   objRow["ID"] = PersonID;
   objTable.Rows.Add(objRow);
   //Opdater data
   dsetAndeby.WriteXml(Server.MapPath("Andeby.xml"));
   //Sæt sæt rækken til redigering
   int recordCount = dsetAndeby.Tables[0].Rows.Count;
   if (recordCount > 1 && dgridAndeby.AllowPaging)
   {
    recordCount -= 1;
    dgridAndeby.CurrentPageIndex = (int)(recordCount / dgridAndeby.PageSize);
    dgridAndeby.EditItemIndex = recordCount % dgridAndeby.PageSize;
   }
   else
   {
    dgridAndeby.EditItemIndex = recordCount -1;
   }
            DoDatabind();
  }

Når du har betalt for kurset får du adgang til øvelser til hver lektion.
Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.