Først lige eksemplet på det med et skjult felt, først klient-koden:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Sandkassen.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="
http://schemas.microsoft.com/intellisense/ie5"> <script type="text/javascript">
function showText(state)
{
var txt = document.getElementById("txtData");
var hid = document.getElementById("hidState");
if(txt)
{
txt.style.display = "block";
if(hid)
hid.value = state;
}
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<input type="hidden" name="hidState" id="hidState" runat="server">
<input type="text" name="txtData" id="txtData" style="DISPLAY:none" runat="server"><br>
<input type="button" name="cmdShowAdd" value="Tilføj tekst" onclick="showText('add')"><br>
<input type="button" name="cmdShowEdit" value="Rediger tekst" onclick="showText('edit')"><br>
<input type="submit" name="cmdGO" value="POST TO SERVER">
</form>
</body>
</HTML>
...og så server-koden:
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputHidden hidState;
protected System.Web.UI.HtmlControls.HtmlInputText txtData;
private void Page_Load(object sender, System.EventArgs e)
{
if(hidState.Value == "add")
{
// gør hvad der skal gøres i tilføjelsestilstand...
Response.Write("Du valgte oprettelse. Teksten indholdte: " + txtData.Value);
}
else if(hidState.Value == "edit")
{
// gør hvad der skal gøres i redigeringstilstand...
Response.Write("Du valgte redigering. Teksten indholdte: " + txtData.Value);
}
/* EKSEMPEL PÅ HVORDAN MAN BENYTTER VIEWSTATE TIL AT HOLDE TILSTAND */
/*
if(ViewState["test"] != null)
Response.Write("ViewState er aflæst: " + ViewState["test"]);
else
{
ViewState["test"] = "YES!";
Response.Write("ViewState er sat");
}
*/
}
// ...PLUS EN KLUMP STANDARD-GENERERET FORM-KODE SOM Visual Studio.NET selv laver.
}
Som du kan se, så har jeg valgt at benytte HTML-Controls, men du kan nok hurtigt udskifte tekst-feltet med server-controls.