Событие 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.