gpt4 book ai didi

javascript - 当 DevExpress ASPxCheckBox 更改时请求客户端确认

转载 作者:行者123 更新时间:2023-12-02 17:02:53 25 4
gpt4 key购买 nike

我正在尝试添加一个确认对话框,以使用户确认对 ASPxCheckBox 的选中状态所做的更改。

取1
基于this DevExpress support center question我正在尝试以下代码:

<dx:ASPxCheckBox ID="ASPxCheckBox1" runat="server">
<ClientSideEvents CheckedChanged="ConfirmChange" />
</dx:ASPxCheckBox>

使用此 JavaScript:

function ConfirmChange (s, e) {
console.log(s);
console.log(e);
return false; // For testing
// return confirm(); // Should become this
}

我希望/期待返回 false 位来阻止更改,但它仍然发生了。我已经检查了控制台记录的参数,看看是否可以影响其中的任何内容,但看起来不像。我还读过 CheckedChanged DevExpress documentation但它也没有说明我的目的。

拿2
我也尝试过在后面的代码中执行此操作:

var checkbox = (ASPxCheckBox)myGridView.FindEditRowCellTemplateControl(myCol, "ASPxCheckBox1";
checkbox.Attributes.Add("onclick", "return confirm('You sure?')")

这还会弹出确认对话框,如果单击“取消”,则无法阻止更改。

拿3
最后,根据此处早期答案之一的建议,我还尝试了验证路线:

<dx:ASPxCheckBox ID="ASPxCheckBox1" runat="server">
<ClientSideEvents Validation="ConfirmChange" />
</dx:ASPxCheckBox>

JavaScript:

function ConfirmChange (s, e) {
e.isValid = confirm();
}

但是,这不会阻止恢复更改,但如果您在确认对话框中点击取消,则会出现验证错误。

所以,底线
如何在 ASPxCheckBox 发生更改之前注入(inject)客户端确认对话框?

最佳答案

您无法阻止 ASPxClientCheckBox.CheckedChanged 事件中的更改,因为当编辑器的选中状态更改时,此事件会在客户端发生。您可以使用 ASPxClientCheckBox.GetChecked 恢复值方法和ASPxClientCheckBox.SetChecked方法。
这是示例:

<dx:ASPxCheckBox ID="ASPxCheckBox1" runat="server">
<ClientSideEvents CheckedChanged="ConfirmChange" />
</dx:ASPxCheckBox>

JavaScript:

function ConfirmChange (s, e) {
console.log(s);
console.log(e);

//Save the checked state
value = s.GetChecked();

//Revert changes immediately
s.SetChecked(!s.GetChecked());

result = false; // For testing
// result = confirm(); // Should become this

if (result) {s.SetChecked(value);}
}

关于javascript - 当 DevExpress ASPxCheckBox 更改时请求客户端确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25547894/

25 4 0
文章推荐: Javascript 通过标签 ID 跟踪页面中的标签总数 (
)
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com