Nu hvor jeg har poste en del omkring de forskellige ting vil jeg også gerne vise lidt hvad jeg enligt har lært ud af denne her bog jeg sider og bruger så meget tid på nogle dage skriver jeg ikke nået omkring .NET andre dage poster jeg helt vildt, håber alle der læser mine indlæg kan få nået ud af det jeg sider og skriver omkring.
Men først vil jeg vise jer en gæstebog jeg har læst mig frem til og lært at lave via denne bog, det er ikke nået wooow men det er stadig en lille ting :0)
først opretter i en class fil der hedder BookEntry med følge indhold.
-
using System;
-
using System.Data;
-
using System.Configuration;
-
using System.Linq;
-
using System.Web;
-
using System.Web.Security;
-
using System.Web.UI;
-
using System.Web.UI.HtmlControls;
-
using System.Web.UI.WebControls;
-
using System.Web.UI.WebControls.WebParts;
-
using System.Xml.Linq;
-
-
/// <summary>
-
/// Summary description for BookEntry
-
/// </summary>
-
public class BookEntry
-
{
-
private string author;
-
public string Author
-
{
-
get { return author; }
-
set { author = value; }
-
}
-
-
private DateTime submitted;
-
public DateTime Submitted
-
{
-
get { return submitted; }
-
set { submitted = value; }
-
}
-
-
private string message;
-
public string Message
-
{
-
get { return message; }
-
set { message = value; }
-
}
-
}
det næste i gør er at oprette en mappe på i jeres website dir med navnet GuestBook og derefter tilføjer dette data i jeres defualt.aspx fil.
-
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 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>
-
-
<asp:GridView ID="GuestBookList" runat="server" AutoGenerateColumns="false">
-
<Columns>
-
<asp:TemplateField HeaderText="Guest Book Comments">
-
<ItemTemplate>
-
Left By:
-
<%# Eval("Author") %>
-
<br />
-
<b><%# Eval("Message") %></b>
-
<br />
-
Left On:
-
<%# Eval("Submitted") %>
-
</ItemTemplate>
-
</asp:TemplateField>
-
</Columns>
-
</asp:GridView>
-
-
</div>
-
<p>
-
Dit navn:
-
<asp:TextBox ID="txtSubmitName" runat="server"></asp:TextBox>
-
<br />
-
Kommentar:
-
<asp:TextBox ID="txtMessage" runat="server" TextMode="MultiLine"></asp:TextBox>
-
<br />
-
<asp:Button ID="btnSubmit" runat="server" onclick="btnSubmit_Click"
-
Text="Gem" />
-
</p>
-
<p>
-
<asp:Label ID="lblError" runat="server" Text="Label"></asp:Label>
-
</p>
-
</form>
-
</body>
-
</html>
så går vil vores codebehind fil altså aspx.cs filen og tilføjer dette data.
-
using System;
-
using System.Configuration;
-
using System.Data;
-
using System.Linq;
-
using System.Web;
-
using System.Web.Security;
-
using System.Web.UI;
-
using System.Web.UI.HtmlControls;
-
using System.Web.UI.WebControls;
-
using System.Web.UI.WebControls.WebParts;
-
using System.Xml.Linq;
-
-
using System.IO;
-
using System.Collections.Generic;
-
-
public partial class _Default : System.Web.UI.Page
-
{
-
private string guestBookName;
-
protected void Page_Load(object sender, EventArgs e)
-
{
-
guestBookName = Server.MapPath("GuestBook");
-
if (!this.IsPostBack)
-
{
-
GuestBookList.DataSource = GetAllEntries();
-
GuestBookList.DataBind();
-
}
-
}
-
-
protected void btnSubmit_Click(object sender, EventArgs e)
-
{
-
newBook.Author = txtSubmitName.Text;
-
newBook.Submitted = DateTime.Now;
-
newBook.Message = txtMessage.Text;
-
-
try
-
{
-
SaveEntry(newBook);
-
}
-
catch (Exception err)
-
{
-
lblError.Text = err.Message + " File not saved.";
-
return;
-
}
-
-
GuestBookList.DataSource = GetAllEntries();
-
GuestBookList.DataBind();
-
-
txtMessage.Text = "";
-
txtSubmitName.Text = "";
-
}
-
-
private List<BookEntry> GetAllEntries()
-
{
-
-
try
-
{
-
foreach (FileInfo fileItem in guestBookDir.GetFiles())
-
{
-
try
-
{
-
entries.Add(GetEntryFromFile(fileItem));
-
}
-
catch (Exception err)
-
{
-
}
-
}
-
}
-
catch (Exception err)
-
{
-
}
-
-
return entries;
-
}
-
private BookEntry GetEntryFromFile(FileInfo entryFile)
-
{
-
StreamReader r = entryFile.OpenText();
-
newEntry.Author = r.ReadLine();
-
newEntry.Submitted = DateTime.Parse(r.ReadLine());
-
newEntry.Message = r.ReadLine();
-
r.Close();
-
return newEntry;
-
}
-
-
private void SaveEntry(BookEntry entry)
-
{
-
string fileName = guestBookName + @"\";
-
fileName += DateTime.Now.Ticks.ToString() + random.Next(100).ToString();
-
StreamWriter w = newFile.CreateText();
-
-
w.WriteLine(entry.Author);
-
w.WriteLine(entry.Submitted.ToString());
-
w.WriteLine(entry.Message);
-
w.Flush();
-
w.Close();
-
}
-
}
det var alt jeg havde at byde på lige nu, håber denne guide hjælper jer lidt igang, kan godt være jeg bygger lidt videre på denne tutorial når jeg ved nået mere.
Hej Daniel, jeg har kigget på din Gæstebog her, meget flot! :D
Jeg har dog bare et spørgsmål, det er sikkert simpelt – men
jeg kan simpelthen ikke se det.
Jeg har lade mig stærkt inspirere af din kode og jeg har kodet
det ind i mit Visual Studio.
Jeg sidder med en mindre problem, med de Kontroller jeg laver.
Eksempel:
private List GetAllEntries()
Her får jeg en fejl, min kan ikke finde klassen BookEntry, selvom den er i min App_Code folder.
Jeg håber lidt på du kunne sige mig hvad problemet eventuelt kunne være.
Jeg har tre tilfælde, og de er alle sammen ens af fejl.
Jeg har været ude for det samme med min MailController, hvor min “Code-Behind” ikke har kunnet finde min Klasse “MailController” – måske mit Visual Studio skal gen-installeres?
Håber du forstår, jeg er dårlig til at forklare.
- Mikkel
Jeg har ikke kodet C# i snart 2år så er meget rusten, og da jeg kodet det var det stadig meget på begynder nivue, :) men kan du uddybe fejlen så kan jeg måske fortælle dig ca. hvad det kan være?
Hej Daniel,
Nej det er fint – jeg fandt selv ud af fejlen, men tak fordi du skrev tilbage. Det er rart at se noget feed-back på en side!
Cheers.
- Mikkel
Hej Mikkel
det er da det mindste man kan gøre på en side, hvis man nu gerne vil have folk til at lave flere kommentare jo. :)