風之力

导航

C#中Button多次提交的解決方法

功能描述:
    頁面上有個form表單,當我點擊提交按鈕后,后台程序能夠根據條件做出判斷,返回給客戶端提示確認框是否繼續執行.如果選擇"是",則執行代碼a,如果選擇"否",則停止執行.
解決方法:
    
這個問題還是比較好解決的.利用RegisterStartupScript可以將javascript代碼返回給客戶端,利用Javascript的Confirm可以制作一個提示框.利用button.click()事件再次提次執行,需要一個隱藏控件保存客戶端user的選擇.
    以下是具體代碼:

假設TextBox_Flag是服務器隱藏控件,Btn_Submit為提交按鈕.
1.Button的服務器端事件處理方法
        private void Btn_Submit_Click(object sender, System.EventArgs e)
        {
            
//TextBox_Flag是服務器隱藏控件,初始運行值為空.則向客戶端發出提示窗口
            if(this.TextBox_Flag.Text.Trim() == "")
            {
                
string js = @"
                            <script>
                            if(confirm(""Are you Sure?""))    //如果點擊ok,則將隱藏控件的值設為1
                            {
                                document.getElementById(""TextBox_Flag"").value=1;
                                document.getElementById(""Btn_Submit"").click();//虛擬提交
                            }
                            </script>
                            
";
                Page.RegisterStartupScript(
"Notice",js);
                
return;
            }
            
//再次提交運行時如果點擊"確定",則此時值為1
            if(this.TextBox_Flag.Text.Trim() == "1")
            {
                
//Code A..
                Response.Write("OK");
            }       
            
//最后要將隱藏控件的值設為初始值
            this.TextBox_Flag.Text = "";
        }
以上只是最基本的代碼,如果有更復雜的流程可以擴充,都不是問題.
拋磚引玉,希望有更好的方法出現.

posted on 2007-11-14 14:41  ZY.Zhou  阅读(1031)  评论(0编辑  收藏  举报