Frage

Ich versuche, Telerik RadSpell zu verwenden, um einen Text zu Rechtschreibprüfung, wenn der Benutzer es einreicht.

Der Weg, dies soll ist arbeiten, indem das Postback zu stoppen, die Auslösung der Rechtschreibprüfung durch Javascript, dann im spellcheckfinished Ereignis manuell die reale Postback zu starten. Das Problem ist, dass im letzten Schritt des Clicked Ereignis nicht für die Schaltfläche feuert und der serverseitige Event-Handler wird nie aufgerufen.

Hier ist der relevante ASPX Code:

<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>

Jede Idee, warum btnSubmit_Click nicht immer genannt und wie kann ich es beheben?

War es hilfreich?

Lösung

Versuchen Sie, Ihren Postback-Skript als zu injizieren:

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

Andere Tipps

Die letzten wie von doSpellCheckStuff () kehrt immer falsch, was den OnClick-Ereignis-Listener stoppt aus ausgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top