well... umiddelbart lyder det jo ikke rigtig som om der er behov for at checke den slags på serveren for at vise dialogbokse - det må siges at være en temmelig enkel validering, men ellers:
<%@ 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 id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<script language="javascript" type="text/javascript">
function isValid(textBox)
{
<%= CallbackFunction %>
}
function showResult(result)
{
if(result == 'NOT_INT')
{
alert('ikke en talværdi');
}
if(result == "TOO_LARGE")
{
alert('for meget...');
}
else if(result == "TOO_SMALL")
{
if(confirm('for lidt... er du sikker på at den er god nok') == true)
{
<%= PostBackFunction %>
}
}
}
</script>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txtInput" runat="server" OnTextChanged="txtInput_TextChanged"></asp:TextBox>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
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 _Default : System.Web.UI.Page, ICallbackEventHandler
{
string callBackResult = String.Empty;
private string _callbackFunction;
public string CallbackFunction
{
get { return _callbackFunction; }
}
private string _postBackFunction;
public string PostBackFunction
{
get { return _postBackFunction; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Browser.SupportsXmlHttp)
{
txtInput.Attributes.Add("onblur", "isValid(this);");
_callbackFunction = ClientScript.GetCallbackEventReference(this, "textBox.value", "showResult", null);
}
_postBackFunction = Page.ClientScript.GetPostBackEventReference(txtInput, null);
}
public string GetCallbackResult()
{
return callBackResult;
}
public void RaiseCallbackEvent(string eventArgument)
{
int indtastning = 0;
try
{
indtastning = int.Parse(eventArgument);
if (indtastning > 20)
callBackResult = "TOO_LARGE";
else if(indtastning >= 10 && indtastning <= 15)
callBackResult ="TOO_SMALL";
else
callBackResult = "OK";
}
catch (Exception)
{
callBackResult = "NOT_INT";
}
}
protected void txtInput_TextChanged(object sender, EventArgs e)
{
Response.Write("så er der accepteret trods advarsler...");
}
}
hvorfor er et tal mellem 10 og 15 for lille, mens under 10 er ok?
mvh