문제

사용자가 제출할 때 Telerik의 Radspell을 사용하여 일부 텍스트를 확인하려고합니다.

이것이 작동하는 방식은 Postback을 멈추고 JavaScript를 통해 맞춤법 검사를 트리거 한 다음 Real Postback을 수동으로 시작하는 SportCheckFinished 이벤트에서입니다. 문제는 마지막 단계에서 클릭 된 이벤트가 버튼에 대해 발사되지 않고 서버 측 이벤트 핸들러가 호출되지 않는다는 것입니다.

관련 .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이 호출되지 않았고 어떻게 고칠 수 있습니까?

도움이 되었습니까?

해결책

Postback 스크립트를 다음과 같이 주입하십시오.

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

다른 팁

DOSPELLCHECKSTUFF ()의 마지막과 같은 것은 항상 False를 반환하여 OnClick 이벤트 리스너가 실행되는 것을 막는 것을 멈추고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top