c#点击服务器端按钮实现confirm功能

说一下我接触到的两种按钮实现confirm功能

普通服务器button控件:

<asp:Button ID="Button1" runat="server" OnClientClick="if(!confirm('Submit form?')){return false;}" OnClick="Button1_Click" Text="Button" />

在元件上註冊一個OnClientClick的事件,在submit前先讓使用者確認,確認後就submit,否則就不submit。

GridView中的command按钮:

        protected void gvProject_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                string[] parameters = e.CommandArgument.ToString().Split('|');
                int rowIndex = Convert.ToInt32(parameters[0]);
                bool confirmResult = false;//弹出框确认激活结果,首次进入该方法为false
                if (parameters.Length == 2)
                {
                    bool.TryParse(parameters[1], out confirmResult);
                }
                if (!confirmResult)//首次进入该方法或确认结果为否
                {
                    //激活前请用户再次确认
                    string commandArgument = e.CommandArgument.ToString() + "|true";
                    string commandProjectName = this.gvProject.Rows[rowIndex].Cells[0].Text;
                    string scriptString = @"
                                            <script>
                                                if(window.confirm('你确认要激活该项目{" + commandProjectName + @"}吗?'))
                                                {
                                                    __doPostBack('gvProject','$" + commandArgument + @"')
                                                }
                                             </script>";
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "billConfirmAlert", scriptString);
                }
                else//第二次进入该方法并且确认激活
                {
                    //获取DataKeys中的projectID
                    int projectID = Convert.ToInt32(this.gvProject.DataKeys[rowIndex].Values["ProjectID"]);
                    projectController.ActivateProject(projectID, "");
                    //激活完毕后刷新列表
                    ShowNotActivatedProject();
                }
            }
            catch (Exception ex)
            {
                this.lblResult.Text = string.Format("激活操作出错:{0}", ex.Message);
            }
        }

注释很详细大家自己看吧。

原文地址:https://www.cnblogs.com/jiangfei5945/p/2899834.html