gpt4 book ai didi

c# - 如何获取客户端确认框值以进行服务器端操作?

转载 作者:行者123 更新时间:2023-11-29 22:22:07 24 4
gpt4 key购买 nike

我正在使用客户端脚本来确认消息框,如下所示

 string script = "fadeScript";
ScriptManager.RegisterClientScriptBlock(this.Page, script.GetType(), "Script", "Closewindow();", true);

java脚本函数:

<script type="text/javascript">
function Closewindow() {
var Result = confirm("Are you sure want to delete?");
alert(Result);
if (Result == true) {
document.getElementById('txtConfirmresult').value = Result;//assigning to hidden text box
alert(txtConfirmresult.value);
return true;
}
else
{
document.getElementById('txtConfirmresult').value = Result;//assigning to hidden text box
alert('BYE');
return false;
}
}

</script>

我想使用 .cs 文件中的脚本返回值来激发过程,如果它返回 true。如果它返回 false,我只需要留在那个特定的页面上。请帮我解决这个问题

最佳答案

您可以使用 __doPostBack(target, argument) 回发到服务器。然后,您可以评估发布数据中的 __EVENTTARGET__EVENTARGUMENT 以查看您发回的内容并适本地执行逻辑。 Here is a link that provides a little more in depth information .

一个简单的例子:

脚本/客户端:

<script type="text/javascript">
function Closewindow() {
var Result = confirm("Are you sure want to delete?");
alert(Result);
if (Result == true) {
var txtConfirmResult = document.getElementById('txtConfirmresult');
txtConfirmResult.value = Result;//assigning to hidden text box
alert(txtConfirmresult.value); //displaying for debug purposes
__doPostBack( 'txtConfirmresult', Result ); //sending back to server.
return true;
}
else
{
document.getElementById('txtConfirmresult').value = Result;//assigning to hidden text box
alert('BYE');
return false;
}
}

C#

    protected void Page_Load(object sender, EventArgs e)
{
string target = Request["__EVENTTARGET"];
string argument = Request["__EVENTARGUMENT"];

if (target != null && target.Equals( "txtConfirmresult" ) )
{
this.DoSomeGreatServerSideProcessing(argument);
}
}

已更新以添加稍微更正确的变量名称,但假设您的脚本可以正常工作,应该可以与您现有的代码库一起使用。我会非常小心地使用 txtConfirmresult 作为您的 ID,因为只有在文本框上未设置 runat="server" 时才有效。如果是这种情况,ID 将被添加到前面以表示容器层次结构。

我建议很好地命名您的“回调”,例如:

脚本/客户端:

<script type="text/javascript">
function Closewindow() {
var Result = confirm("Are you sure want to delete?");
document.getElementById('txtConfirmresult').value = Result;//assigning to hidden text box
if (Result) {

__doPostBack( 'UserConfirmedFormSubmission', "CloseWindow" ); //sending back to server.
return true;
}
else
{
return false;
}
}

C#

    protected void Page_Load(object sender, EventArgs e)
{
string target = Request["__EVENTTARGET"];
string argument = Request["__EVENTARGUMENT"];

if (!string.IsNullOrEmpty(target) && target.Equals("UserConfirmedFormSubmission"))
{
if ( !string.IsNullOrEmpty(argument) && argument.equals("CloseWindow"))
{
this.HandleUserRequestedCloseWinow();
}
}
}

关于c# - 如何获取客户端确认框值以进行服务器端操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11779851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com