asp.net - 使用 javascript 回发时未触发事件

标签 asp.net javascript telerik

我正在尝试使用 Telerik 的 RadSpell 在用户提交某些文本时对其进行拼写检查。

其工作方式是停止回发,通过 javascript 触发拼写检查,然后在pellcheckfinished 事件中手动启动真正的回发。问题是,在最后一步中,按钮的 Clicked 事件没有触发,并且服务器端事件处理程序永远不会被调用。

以下是相关的 .aspx 代码:

<script type="text/javascript" language="javascript">

    var spellCheckFinished = false;
    var btnClicked;

    function doSpellCheckStuff(btnTrigger) 
    {          
        btnClicked = btnTrigger;
        var spell = GetRadSpell('<%= rsMessage.ClientID %>');
     //   spell.add_clientCheckFinished(checkFinished);
        spell.startSpellCheck();
        return false;
    }

    function checkFinished(sender, args)
    {   
        args.SuppressCompleteMessage = true;
        setTimeout('MySubmit();', 100);
    }

    function MySubmit()
    {
        WebForm_DoPostBackWithOptions(
            new WebForm_PostBackOptions(btnClicked.id, '', true, '', '', false, true)
        );
    }
</script>

<tr>
            <td>
                <asp:Button ID="btnSubmit" OnClientClick="return doSpellCheckStuff(this);" Text="Submit" 
                            OnClick="btnSubmit_Click" runat="server" />
            </td>
            <telerik:RadSpell   ID="rsMessage" ControlToCheck="txtMessage" ButtonType="None" 
                                UseClassicDialogs="true" FragmentIgnoreOptions="All" 
                                OnClientCheckFinished="checkFinished" runat="server" />
        </tr>

知道为什么 btnSubmit_Click 没有被调用以及如何修复它吗?

最佳答案

尝试将回发脚本注入(inject)为:

string script = @"function MySubmit(){" +
                  this.Page.ClientScript.GetPostBackEventReference(myButton, string.Empty);
                  "}";

if (!this.Page.ClientScript.IsClientScriptBlockRegistered("myPostBackScript"))
{
    this.Page.ClientScript.RegisterClientScriptBlock(typeof(MyPage), "myPostBackScript", script, true);
}

关于asp.net - 使用 javascript 回发时未触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/682079/

相关文章:

asp.net - 使用 session 包装器代替对 session 变量的直接调用

C# - 当站点上没有事件时,Quartz 调度程序停止运行

javascript - 在nodejs中导出变量和函数

c# - 使用 c# (Telerik) 在 wpf 中的工具提示或鼠标悬停中显示弹出窗口

c# - WPF 模板和绑定(bind)到 GridView 中的 DataContext

asp.net - 使用无 cookie session 时如何检测 session 超时

javascript - knockout 计算仅在 IE 中给出函数预期错误

javascript - 过渡仅适用于调试

wpf - WPF 中图像填充按钮上的空间

asp.net - 使用选择器获取带有ASP.NET的服务器上文件的列表