如何在 Telerik RadGrid 中手动触发 PostBackOnFilter?

How to manually trigger a PostBackOnFilter in a Telerik RadGrid?

我有一个包含一些 telerik:GridBoundColumns 的 telerik radgrid。到目前为止,它们都将 AutoPostBackOnFilter 值设置为 true。每当我在其中一个过滤器框内按回车键时,或者如果我只是离开给定过滤器的焦点,这就会应用一个过滤器。我想删除此功能。所以我将 AutoPostBackOnFilter 设置为 "false".

如果我现在在页面上创建一个自定义按钮,有没有办法通过我的按钮触发相同的 PostBack?

答案将根据您使用的 Telerik 版本而有所不同;但是,一般来说,telerik 会转储标准 HTML,因此如果您要提交表单数据,那么普通的旧提交应该可以工作。此外,Telerik 确实使用 Ajax 来处理专门的事件。这是一个例子:

Aspx

<form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
</telerik:RadAjaxManager>
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        function clientClick() {
            var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");
            ajaxManager.ajaxRequest("client");
        }
    </script>
</telerik:RadCodeBlock>
<div>
    <asp:Button ID="btnServer" runat="server" Text="Make server AjaxRequest" OnClick="btnServer_Click" />
    <input id="btnClient" type="button" value="Make client AjaxRequest" onclick="clientClick();" />
</div>
</form>

代码隐藏

protected void btnServer_Click(object sender, EventArgs e)
{
    RadAjaxManager1.RaisePostBackEvent("server");
}
protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
    RadAjaxManager1.Alert("AjaxRequest raised from the " + e.Argument);
}

http://docs.telerik.com/devtools/aspnet-ajax/controls/ajax/server-side-programming/events/onajaxrequest

http://docs.telerik.com/devtools/aspnet-ajax/controls/grid/control-lifecycle/how-to-fire-command-events