Событие OnClick на стороне сервера не запускается на кнопке в RadWindow телерика

Итак, у меня проблема с элементом управления RadWindow.

У меня есть кнопка внутри RadWindow. Кнопка должна отвечать на события на стороне сервера в коде позади. Я дошел до того, что заставил этот код работать в тестовом приложении, но я не могу заставить его работать в реальном приложении.

Я посмотрел в нескольких разных местах и использовал то, что узнал, чтобы получить тестовое приложение, которое работает. Но тот же самый фрагмент кода не работает в моем приложении. Единственное ключевое отличие, которое я могу сказать, это то, что у меня есть ссылка на диспетчер скриптов в отдельном файле и что я использую.net версии 2 в реальном приложении, но 4.0 в тестовом приложении. Что я здесь не так делаю?

Код позади (который не стреляет)

Protected Sub btnClearFilterValues_OnClick(ByVal sender As Object, ByVal e As EventArgs) Handles btnClearFilterValues.Click
    'clears a bunch of values 
    'this never hits'
End Sub

Protected Sub btnFilterCourses_OnClick(ByVal sender As Object, ByVal e As EventArgs) Handles btnFilterCourses.Click
    'Code executes filter'
    'this never hits'
End Sub

Отдельный заголовок, ссылающийся на скрипты, содержит следующее

<telerik:RadScriptManager ID="ScriptManager" runat="server" ScriptMode="Release">
    <Scripts>
        <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js"></asp:ScriptReference>
        <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js"></asp:ScriptReference>
        <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js"></asp:ScriptReference>
    </Scripts>
</telerik:RadScriptManager>

Разметка


<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    </telerik:RadAjaxManager>

        <telerik:RadCodeBlock runat="server" ID="rdbScripts">
            <script type="text/javascript">
            <!--
    //-->

    //adds jquery to the global or "window" level namespace
    window.$ = $telerik.$;

    function showDialog() {
        var wnd = $find("<%=modalPopup.ClientID %>");
        wnd.show();
        Sys.Application.remove_load(showDialog);
    }

    $(document).ready(function () {
        $("#btnFilter").click(function (event) {
            showDialog();
        });
    });
    </script>
</telerik:RadCodeBlock>

    <telerik:RadAjaxPanel runat="server" ID="rapConfiguration" HorizontalAlign="NotSet">
        <telerik:RadWindow ID="modalPopup" runat="server" Width="720px" Height="292px" Modal="True" Title="Filter Courses">
            <ContentTemplate>
                <div>
                    <asp:Button ID="btnFilterCourses" runat="server" OnClick="btnFilterCourses_OnClick" Style="margin-right: auto; margin-left: 0" Text="Filter Courses" UseSubmitBehavior="False" />
                    <asp:Button ID="btnClearFilterValues" OnClick="btnClearFilterValues_OnClick" runat="server" Style="margin-right: auto; margin-left: auto;" Text="Clear" UseSubmitBehavior="False" />
                </div>
            </ContentTemplate>
        </telerik:RadWindow>
    </telerik:RadAjaxPanel>

1 ответ

Решение
<asp:Button ID="btnFilterCourses" runat="server" OnClick="btnFilterCourses_OnClick" Style="margin right: auto; margin-left: 0" Text="Filter Courses" UseSubmitBehavior="False" AutoPostBack="TRUE" />

<asp:Button ID="btnClearFilterValues" OnClick="btnClearFilterValues_OnClick" runat="server" Style="margin-right: auto; margin-left: auto;" Text="Clear" UseSubmitBehavior="False" AutoPostBack="TRUE" />

Вы можете попробовать это, я добавил свойство AutoPostBack.

Другие вопросы по тегам