You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向RadButton的OnClientClicking函数传递参数并在确认弹窗中显示记录编号

如何向RadButton的OnClientClicking函数传递参数并在确认弹窗中显示记录编号

我来帮你搞定这个问题!你想要在RadButton的删除确认弹窗里显示具体的记录编号,同时还要正确传递参数对吧?之前直接传参数导致页面崩溃,大概率是因为没处理好RadButton事件默认的sender和args参数,我给你两种可行的解决方案:

方法一:通过匿名函数中转传递自定义参数

这种方法直接把记录编号通过匿名函数传递给你的DeleteConfirm函数,同时保留RadButton事件必需的sender和args参数,避免出现页面崩溃的情况。

首先修改客户端脚本,给DeleteConfirm函数新增一个接收记录编号的参数:

<script>
function DeleteConfirm(sender, args, recordNo) {
    // 拼接包含记录编号的确认提示
    var confirmMsg = 'Confirm to Delete Record (' + recordNo + ')?';
    // 控制是否取消按钮的提交操作
    args.set_cancel(!confirm(confirmMsg));
}
</script>

然后修改RadButton的OnClientClicking属性,用匿名函数来中转参数:

<telerik:RadButton ID="btnDelete" runat="server" Skin="Windows7" Text="Delete"
    CommandName="Delete"
    CommandArgument='<%# Eval("CueId") + "|" + Eval("RevID") + "|" + Eval("No") %>'
    <!-- 用匿名函数把默认参数和自定义的记录编号一起传给DeleteConfirm -->
    OnClientClicking="function(sender, args){ DeleteConfirm(sender, args, '<%# Eval("No").ToString() %>'); }"
    visible='<%# If(Eval("AdminPage").ToString() = "Yes", true, false) %>'
    Enabled='<%# If(Eval("ReadOnly").ToString() = "Y", true, false) %>' >
</telerik:RadButton>

方法二:从CommandArgument中提取记录编号

观察你的代码发现,CommandArgument里已经拼接了No字段(格式是CueId|RevID|No),所以我们可以直接从这里提取记录编号,不用额外传递参数,这样更简洁:

只需要修改客户端脚本即可,OnClientClicking保持原来的绑定方式:

<script>
function DeleteConfirm(sender, args) {
    // 从按钮的CommandArgument中拆分出各个参数
    var argParts = sender.get_commandArgument().split('|');
    // 第三个部分就是我们需要的记录编号No
    var recordNo = argParts[2];
    // 拼接确认提示
    var confirmMsg = 'Confirm to Delete Record (' + recordNo + ')?';
    args.set_cancel(!confirm(confirmMsg));
}
</script>

RadButton的OnClientClicking属性保持不变:

OnClientClicking="DeleteConfirm"

这两种方法都能实现你要的效果,你可以根据自己的习惯选择其中一种。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 09:43:00