65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.08/5 (5投票s)

2008年12月26日

CPOL
viewsIcon

13929

你们中的许多人可能遇到过需要根据客户端 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);
    }
}

请参阅下面的结果

© . All rights reserved.