du kan i hvert fald få et eksempel på callbacks her... så kan du jo se om det er noget for dig.
(så meget fylder det jo heller ikke hvis du lægger postnumre og bynavne ud til klienten, så du kan lave en ren klientløsning, men hvis du skal lave noget lidt mere avanceret med serverside validering og ditten og datten - kan du bruge eksemplet som udgangspunkt)
// en form:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CallbackSample.aspx.cs" Inherits="CallbackSample" %>
<!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>
<script language="javascript" type="text/javascript">
function hentByNavn(arg, targetId)
{
var context = new Object();
context.TargetId = targetId;
<%= CallbackFunction %>
}
function setByNavn(result, context)
{
document.getElementById(context.TargetId).value = result;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox id="txtPostnummer" runat="server" />
<asp:TextBox id="txtBy" runat="server" />
<br />
<asp:TextBox id="txtPostnummer2" runat="server" />
<asp:TextBox id="txtBy2" runat="server" />
</form>
</body>
</html>
// og koden
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class CallbackSample : System.Web.UI.Page, ICallbackEventHandler
{
// property med privat field
private string _callbackFunction;
public string CallbackFunction
{
get { return _callbackFunction; }
}
protected void Page_Load(object sender, EventArgs e)
{
// få sat callbackfunction
_callbackFunction = Page.ClientScript.GetCallbackEventReference(this, "arg", "setByNavn", "context");
// sørg for at der clientside kaldes, når brugeren forlader feltet
this.txtPostnummer.Attributes["onblur"] += "hentByNavn(this.value, '" + txtBy.ClientID + "');";
this.txtPostnummer2.Attributes["onblur"] += "hentByNavn(this.value, '" + txtBy2.ClientID + "');";
}
#region ICallbackEventHandler implementering
string callbackResult;
public string GetCallbackResult()
{
return callbackResult;
}
public void RaiseCallbackEvent(string eventArgument)
{
callbackResult = eventArgument + "_ÅRHUS";
}
#endregion
}
det virker måske lidt kryptisk, men du kan debugge igennem det, og se hvad der sker...