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 FunctionPå 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.