Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅在客户端确认后执行服务器端代码_C#_Asp.net - Fatal编程技术网

C# 仅在客户端确认后执行服务器端代码

C# 仅在客户端确认后执行服务器端代码,c#,asp.net,C#,Asp.net,在计算复杂的公式服务器端后,我必须显示客户端确认。差不多 //Server side On ButtonClick(){ FetchRate(field1,field2,.... fieldn); // Show Client side confirmation // Execute server side code if confirmed client side } 我所做的是创建了一个客户端

在计算复杂的公式服务器端后,我必须显示客户端确认。差不多

//Server side
        On ButtonClick(){
            FetchRate(field1,field2,.... fieldn);
            // Show Client side confirmation
            // Execute server side code if confirmed client side 
    }
我所做的是创建了一个客户端函数,但无论我选择什么客户端,我的服务器端代码总是在回发时执行

// Server side    
ScriptManager.RegisterStartupScript(this,this.GetType(), Guid.NewGuid().ToString(), "ConfirmAction('"+ myRate +"');", true);
//Client side
    function ConfirmAction(myRate) {
            if (confirm('Are you sure?. Rate is exceeding '+ myRate +', proceed ?')) {
                document.getElementById('hfSaveUpdate').value = 1;
                return true;
            }
            else
                return false;
        }

您可以在按钮上设置
onclientclick属性


链接:

您可以在按钮上设置
onclientclick属性


链接:

您不能在服务器端代码之间放置客户端操作

您的代码准备客户端确认,但在响应完成之前不会将其发送到浏览器。然后服务器立即继续处理您的数据。完成后,响应将发送到浏览器,用户将看到确认对话框。太晚了:数据已被处理。对话框的结果永远不会发送到服务器


您需要将流程分为两部分:首先确认该速率(可能使用ajax),然后提交要处理/存储的表单。

您不能在服务器端代码之间插入客户端操作

您的代码准备客户端确认,但在响应完成之前不会将其发送到浏览器。然后服务器立即继续处理您的数据。完成后,响应将发送到浏览器,用户将看到确认对话框。太晚了:数据已被处理。对话框的结果永远不会发送到服务器

您需要将流程分为两部分:首先确认该速率(可能使用ajax),然后提交要处理/存储的表单。

您可以使用并处理其“确定和取消”按钮

<ajaxToolkit:ModalPopupExtender ID="ModelPopupID" runat="server"  
    TargetControlID="LinkButton1"  
    PopupControlID="Panel1"  
    BackgroundCssClass="modalBackground"   
    DropShadow="true"   
    OkControlID="OkButton"   
    OnOkScript="onOk()"  
    CancelControlID="CancelButton"   
    PopupDragHandleControlID="Panel3" />  
客户端代码:

ClientScript.RegisterStartupScript(this.GetType(), "key", "launchModal();", true);
<script type="text/javascript">
 var launch = false;
 function launchModal() 
 {
 launch = true;
 }
function pageLoad() 
 {
 if (launch) 
 {
 $find("ModelPopupID").show();
 }
 }
</script>

var-launch=false;
函数launchModal()
{
启动=真;
}
函数pageLoad()
{
如果(发射)
{
$find(“ModelPopupID”).show();
}
}
单击模型弹出窗口的ok,在确认代码之后执行服务器端。 单击“取消”按钮,只需隐藏模型弹出窗口

有关详细信息,请检查以下内容:

您可以使用并处理其“确定和取消”按钮

<ajaxToolkit:ModalPopupExtender ID="ModelPopupID" runat="server"  
    TargetControlID="LinkButton1"  
    PopupControlID="Panel1"  
    BackgroundCssClass="modalBackground"   
    DropShadow="true"   
    OkControlID="OkButton"   
    OnOkScript="onOk()"  
    CancelControlID="CancelButton"   
    PopupDragHandleControlID="Panel3" />  
客户端代码:

ClientScript.RegisterStartupScript(this.GetType(), "key", "launchModal();", true);
<script type="text/javascript">
 var launch = false;
 function launchModal() 
 {
 launch = true;
 }
function pageLoad() 
 {
 if (launch) 
 {
 $find("ModelPopupID").show();
 }
 }
</script>

var-launch=false;
函数launchModal()
{
启动=真;
}
函数pageLoad()
{
如果(发射)
{
$find(“ModelPopupID”).show();
}
}
单击模型弹出窗口的ok,在确认代码之后执行服务器端。 单击“取消”按钮,只需隐藏模型弹出窗口

有关详细信息,请检查以下内容: