今天遇到一个问题,需要客户在点击一个按钮后,能够提示是否确定,如果确定,则要求用户输入一个数字,并讲这个数字写入数据库。刚开始觉得很简单,后来遇到很多问题,也搜了很多JS和后台交互的东西,最后做出来了,看来有些东西还是需要动手才能有效果。
好吧说思路。前台JS有个一confirms()函数,用于实现提醒用户,和获取用户输入值。这个值保存在<input id="username" runat ="server" name="username" value="10" /><input>中。后台可以通过Request.Params["username"]。获取这个值。注意,这个input必须放在<form>内。还有Request.Params传值也很有趣,有兴趣的可以看看这个http://dxz506.blog.163.com/blog/static/103254696200951222240/ http://blog.youkuaiyun.com/works07/archive/2010/08/19/5823050.aspx
最后贴代码
test.aspx
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
- <!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">
- <script language="javascript" type="text/javascript">
- function confirms(obj) {
- var r = window.confirm("是否确定添加该货物到该货位?");
- if (r == true) {
- var value = window.prompt("请输入该货位的最大存储数量:", "");
- var number = document.getElementById("number");
- number.value = value;
- }
- else {
- }
- }
- </script>
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <input id="number" runat ="server" name="number" value="10" />
- <asp:Button ID="Button" runat="server" Text="提交" OnClientClick="return confirms(this);" OnClick ="Button_Click"/>
- </form>
- </body>
- </html>
test.aspx.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Configuration;
- using System.Data.SqlClient;
- using System.Data;
- public partial class test : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- /// <summary>
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void Button_Click(object sender, EventArgs e)
- {
- //string max = number.Value;
- string max2 = Request.Params["number"];
- if (max2 == string.Empty || max2 == null)
- {
- Response.Write("<script>alert('empty');</script>");
- }
- else
- {
- Response.Write(max2);
- }
- }
- }