基于客户端 JavaScript 的服务器端决策






4.08/5 (5投票s)
你们中的许多人可能遇到过需要根据客户端 JavaScript 确认消息来做出服务器端决策的情况。
你们中的许多人可能遇到过需要根据客户端 JavaScript 确认消息的值来做出服务器端决策的情况。 尽管这可能听起来是一个非常基本的功能,但令人惊讶的是,许多开发人员在实现它时会遇到困难。 在本文中,我将向您展示如何操作。
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
<table style="margin-top:100px;">
<tr style="padding-bottom:10px">
<td>
<asp:Label ID="lblitemName" Text="Item Value" runat="server">
</asp:Label>
</td>
<td>
<asp:TextBox ID="txtitemval" runat="server"> </asp:TextBox>
</td>
</tr>
</table>
<div style="padding-bottom:10px">
<asp:Label ID="lblMsg" runat="server"></asp:Label>
</div>
<div style=" margin-bottom:100px; margin-left:120px">
<asp:HiddenField ID="hdnField" runat="server" Value="false" />
<asp:Button ID="btnSubmit" runat="server" Text="Check Val" OnClick="btnSubmits_Click" />
</div>
</asp:Content>
以及此页面的后台代码如下:
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;
using System.Data.SqlClient;
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmits_Click(object sender, EventArgs e)
{
string itemValue = Convert.ToString(txtitemval.Text);
if (hdnField.Value == "false")
{
lblMsg.Visible = false;
AddJavascriptCode(itemValue);
}
else if (hdnField.Value == "true")
{
lblMsg.Visible = true;
lblMsg.Text = string.Format("You have entered {0}", itemValue);
hdnField.Value = "false";
}
}
private void AddJavascriptCode(string itemValue)
{
string script = @"< script language=""JavaScript"" type=""text/javascript"">
window.onload=function()
{
var IsConfirm = 1;
objField = document.getElementById('" + hdnField.ClientID + @"');
objSubmit = document.getElementById('" + btnSubmit.ClientID + @"');
IsConfirm = newConfirm('Test','You have entered " + itemValue + @" value. Are you sure you want to go next page?',1,1,0);
if(IsConfirm == true)
{
objField.value = 'true';
objSubmit.click();
}
else
{
objField.value = 'false';
}
}
function newConfirm(title,mess,icon,defbut,mods)
{
if (document.all)
{
retVal = confirm(mess);
retVal = (retVal==1)
}
else
{
retVal = confirm(mess);
}
return retVal;
}
</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "Test", script);
}
}
请参阅下面的结果
