Asp.net 事件不是';在使用javascript回发时不会触发

Asp.net 事件不是';在使用javascript回发时不会触发,asp.net,javascript,telerik,Asp.net,Javascript,Telerik,我试图使用Telerik的RadSpell在用户提交文本时检查文本的拼写 其工作方式是停止回发,通过javascript触发拼写检查,然后在spellcheckfinished事件中手动启动真正的回发。问题是,在最后一步中,单击的事件没有为按钮触发,服务器端事件处理程序从未被调用 以下是相关的.aspx代码: <script type="text/javascript" language="javascript"> var spellCheckFinished = fals

我试图使用Telerik的RadSpell在用户提交文本时检查文本的拼写

其工作方式是停止回发,通过javascript触发拼写检查,然后在spellcheckfinished事件中手动启动真正的回发。问题是,在最后一步中,单击的事件没有为按钮触发,服务器端事件处理程序从未被调用

以下是相关的.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>

var spellCheckFinished=false;
var btnClicked;
函数doSpellCheckStuff(btnTrigger)
{          
btnClicked=btnTrigger;
var-spell=GetRadSpell(“”);
//拼写.add_clientCheckFinished(checkFinished);
拼写。开始拼写检查();
返回false;
}
函数检查完成(发送方,参数)
{   
args.SuppressCompleteMessage=true;
setTimeout('MySubmit();',100);
}
函数MySubmit()
{
WebForm_DoPostBackWithOptions(
新的WebForm_PostBackOptions(btnClicked.id',true','',false,true)
);
}

知道为什么btnSubmit\u Click没有被调用以及我如何修复它吗?

doSpellCheckStuff()的最后一个类始终返回false,这会阻止OnClick事件侦听器运行。

doSpellCheckStuff()的最后一个类始终返回false,这将停止OnClick事件侦听器的运行。

尝试将回发脚本注入为:

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);
}

尝试将回发脚本注入为:

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);
}

那么,我如何停止回发以等待拼写检查,然后重新启动它呢?请尝试返回true而不是false,看看会发生什么。如果返回true,它将立即回发,这将阻止拼写检查程序运行。这就是为什么我首先添加了return false…很抱歉。不过,我很高兴ScarletGarden可以帮助您。那么,我如何停止回发以等待拼写检查,然后重新启动它?尝试返回true而不是false,看看会发生什么。如果返回true,它将立即回发,这将阻止拼写检查程序运行。这就是为什么我首先添加了return false…很抱歉。不过,我很高兴ScarlettGarden可以帮助您。这只需要一个小改动,即在RegisterClientScriptBlock的末尾添加true。。。否则,它只是将文本注入到页面中,而不被视为脚本。谢谢是的,我忘了添加bool来添加脚本标记,现在正在更新它。只做了一个小改动,将true添加到RegisterClientScriptBlock的末尾。。。否则,它只是将文本注入到页面中,而不被视为脚本。谢谢是的,我忘了添加bool来添加脚本标记,现在正在更新它。