日期:2014-05-16  浏览次数:20339 次

还是confirm...
工具:vs2005+sql2005
语言:.net+c#(或者javascript)

问题貌似:
申请者在网页填好申请的物资和申请的时间,服务器根据情况选择执行代码
客户端填好申请资料,按下提交按钮button1,服务器端根据填的资料和数据库现有的申请来判断:A.如果需要申请的物资还没有人申请的话就直接调用Newapply()函数在数据库插入申请表,弹出“成功提交申请”;B.如果需要申请的物资已经有人申请了就弹出confirm“已经有人正在申请同样的物资,是否继续申请?"点确定的话就调用Newapply()函数在数据库插入申请表,弹出“成功提交申请”,点取消的话就取消操作
ps:我现在页面的控件都是服务器控件

请问具体如何实现?如果是用button1.attributes.add("onclick","confirm('已经有人正在申请同样的物资,是否继续申请?');"),然后在button_onclick()事件里面调用Newapply()的话应该行不通,因为,这样的话不管怎么样点了button1按钮的话都会弹出confirm,这样的话就不是根据数据库判断是否需要弹出confirm了,另外论坛上还有一种说法是再加个隐藏button然后在客户端调用隐藏butoon的click()的,我在试着....

麻烦大家说下应该怎么解决,谢谢各位前辈~~~

------解决方案--------------------
下面的代码实现了你的目的,结帖吧:
HTML code
<%@ Page Language="C#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!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>
    <title>Untitled Page</title>
    <script language="C#" runat="server">
        public void Page_Load(object sender, EventArgs e)
        {
            btn1.Style["display"] = "none";
        }
        
        public void Click1(object sender, EventArgs e)
        {
            Response.Write("提交了!");
        }
        
        // 实现接口
        public string m_CallbackResult;
        public string GetCallbackResult()
        {
            return m_CallbackResult;
        }

        public void RaiseCallbackEvent(string eventArgument)
        {
            // 这里做你的判断
            if(eventArgument == "you")
            {
                m_CallbackResult = "0";// 已经有人正在申请同样的物资
            }
            else
            {
                m_CallbackResult = "1";// 没有人正在申请同样的物资
            }
        }
    </script>
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript">
        function CallServer(){
            var arg = document.getElementById("txt1").value;
            <%=ClientScript.GetCallbackEventReference(this, "arg", "JsRecieve", null) %>
        }
        
        function JsRecieve(ret){
            if(ret == "0"){
                if(confirm("已经有人正在申请同样的物资,继续吗?")){
                    document.getElementById("btn1").click();
                }
            }else
                document.getElementById("btn1").click();
        }

        function SubmitCheck(){
            CallServer();
            return false;
        }
    </script>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:TextBox ID="txt1" runat="server"></asp:TextBox>
        <input type="button" onclick="SubmitCheck()" value="test" />
        <asp:Button ID="btn1" runat="server" OnClick="Click1" Text="test" />
    </form>
</body>
</html>