Moduler>AJAX>AJAX i .NET>Enkel
Enkel AJAX i .Net
I designeren i Visual Studio har vi laget følgende side:
<%@ 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>WS</title>
<script type="text/javascript">
function pageLoad() {
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<h1>William Shakespeare</h1>
<p>Henter sonetter inn i et UpdatePanel</p>
<img src="ws.jpg" alt="" />
<br />
<asp:TextBox ID="TextBoxSonetteNr" runat="server">18</asp:TextBox>
<asp:Button ID="ButtonGetSonette" runat="server" Text="Hent sonnete"
onclick="ButtonGetSonette_Click" />
<br />
<asp:RangeValidator ID="RangeValidator1" runat="server"
ControlToValidate="TextBoxSonetteNr" Display="Dynamic"
ErrorMessage="Tall i området" MaximumValue="154" MinimumValue="1"
Type="Integer"></asp:RangeValidator>
<asp:Label ID="Label1" runat="server" Text=" [1..154]">
</asp:Label>
<!-- The update panel -->
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="LabelDikt" runat="server"
Font-Bold="True" ForeColor="#0066FF"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ButtonGetSonette"
EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
<hr/>
<p>Studer kildekoden.</p>
<p><a href="javascript:history.back()">Tilbake</a></p>
</form>
</body>
</html>
Koden som går bak er slik
using System;
using System.Collections;
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;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ButtonGetSonette_Click(object sender, EventArgs e)
{
// get parameter
String S = TextBoxSonetteNr.Text;
int sonetteNum;
try
{
sonetteNum = Convert.ToInt16(S);
}
catch (Exception ex)
{
sonetteNum = 1;
}
sonetteNum = Math.Min(Math.Max(1, sonetteNum), 154);
// get the XML-file with sonnetes
string physicalPath = HttpContext.Current.Server.MapPath(".").ToString();
String filename = physicalPath + "\\App_Data\\sonnetes.xml";
XmlDocument doc = new XmlDocument();
String Res="";
try
{
doc.Load(filename);
XmlNodeList list = doc.GetElementsByTagName("sonnet");
XmlElement p = (XmlElement)list.Item(sonetteNum - 1);
XmlNodeList lines = p.GetElementsByTagName("line");
XmlNodeList heads = p.GetElementsByTagName("id");
Res = "<h3>Nr: " + heads.Item(0).InnerText + "</h3>\r\n";
foreach (XmlNode n in lines)
{
Res += "<div>" + n.InnerText + "</div>\r\n";
}
}
catch (Exception ex)
{
Res="Could not find a sonnette: " + ex.Message;
}
// Update results
LabelDikt.Text = Res;
}
}