Asp.net RadAjaxManager的正确配置是什么?此问题与UpdatePanel有关!

Asp.net RadAjaxManager的正确配置是什么?此问题与UpdatePanel有关!,asp.net,ajax,visual-studio-2010,updatepanel,radajaxmanager,Asp.net,Ajax,Visual Studio 2010,Updatepanel,Radajaxmanager,首先查看以下aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="Amlak.WebForm4" %> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <!DOCTYPE html PUBLIC "-//W3

首先查看以下aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="Amlak.WebForm4" %>

<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadComboBox1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="CheckBox1" UpdatePanelRenderMode="Inline" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <telerik:RadComboBox ID="RadComboBox1" runat="server" AutoPostBack="True" AppendDataBoundItems="True"
            OnSelectedIndexChanged="RadComboBox1_SelectedIndexChanged">
            <Items>
                <telerik:RadComboBoxItem runat="server" Text="1" Value="1" />
                <telerik:RadComboBoxItem runat="server" Text="2" Value="2" />
                <telerik:RadComboBoxItem runat="server" Text="3" Value="3" />
                <telerik:RadComboBoxItem runat="server" Text="4" Value="4" />
            </Items>
        </telerik:RadComboBox>
        <br />
        <br />
        <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged"
            Text="Check Me" TextAlign="Left" />
        <br />
        <br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    </form>
</body>
</html>
我的目标:

  • 我想强制
    radcombox1
    在AJAX模式下工作,并更改复选框1。由代码隐藏中定义的条件进行检查。->不希望对此进行回发

  • 我想强制
    CheckBox1
    在回发模式下工作,并根据代码隐藏中定义的条件更改
    TextBox1.text
    。->我想要回邮

  • 在这种情况下->
    radcombox1
    工作正常
    但是我不知道为什么当我们更改CheckBox1的check时,
    OnCheckedChanged=“CheckBox1\u CheckedChanged”
    不会触发!(因为我们在
    RadAjaxManager1
    中添加了它作为
    radcombox1
    的更新)


    我的问题是:

    是否应将
    radcombox1
    添加为
    radcombox1
    的更新?但是,它在不添加此项的情况下运行良好

    如果我们将
    ChechBox1
    添加到
    RadAjaxManager1
    中,如下所示:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="Amlak.WebForm4" %>
    
    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div>
            <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
                <AjaxSettings>
                    <telerik:AjaxSetting AjaxControlID="RadComboBox1">
                        <UpdatedControls>
                            <telerik:AjaxUpdatedControl ControlID="CheckBox1" UpdatePanelRenderMode="Inline" />
                        </UpdatedControls>
                    </telerik:AjaxSetting>
                    <telerik:AjaxSetting AjaxControlID="CheckBox1">
                        <UpdatedControls>
                            <telerik:AjaxUpdatedControl ControlID="TextBox1" />
                        </UpdatedControls>
                    </telerik:AjaxSetting>
                </AjaxSettings>
            </telerik:RadAjaxManager>
            <telerik:RadComboBox ID="RadComboBox1" runat="server" AutoPostBack="True" AppendDataBoundItems="True"
                OnSelectedIndexChanged="RadComboBox1_SelectedIndexChanged">
                <Items>
                    <telerik:RadComboBoxItem runat="server" Text="1" Value="1" />
                    <telerik:RadComboBoxItem runat="server" Text="2" Value="2" />
                    <telerik:RadComboBoxItem runat="server" Text="3" Value="3" />
                    <telerik:RadComboBoxItem runat="server" Text="4" Value="4" />
                </Items>
            </telerik:RadComboBox>
            <br />
            <br />
            <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged"
                Text="Check Me" TextAlign="Left" />
            <br />
            <br />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </div>
        </form>
    </body>
    </html>
    
    
    



    因此,它在AJAX模式下工作正常,但我想强制
    CheckBox1
    在回发模式下工作
    如何解决此问题

    我是否应该在
    RadAjaxManager
    中添加
    TextBox1
    作为
    radcombox1
    的更新

    谢谢你关注我的问题。 致以最良好的祝愿

    RadAjaxManager设置将不会使按钮处于AJAX状态。。。 …没有更新的控件时

    因此,您可能必须执行以下操作:

    <UpdatedControls>
                   <telerik:AjaxUpdatedControl ControlID="ChechBox1" />
    </UpdatedControls>
    

    您甚至可以利用RadAjaxManager的OnRequestStart来禁用特定请求的Ajax功能。以下是您的代码的更新版本,可按您的要求运行:

    <div>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadComboBox1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl
                            ControlID="CheckBox1"
                            UpdatePanelRenderMode="Inline" />
                        <telerik:AjaxUpdatedControl
                            ControlID="TextBox1"
                            UpdatePanelRenderMode="Inline" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
                <telerik:AjaxSetting AjaxControlID="CheckBox1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl
                            ControlID="TextBox1"
                            UpdatePanelRenderMode="Inline" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
            <ClientEvents OnRequestStart="onAjaxRequestStart" />
        </telerik:RadAjaxManager>
    
        <telerik:RadComboBox ID="RadComboBox1" runat="server"
            AutoPostBack="True"
            AppendDataBoundItems="True"
            OnSelectedIndexChanged="RadComboBox1_SelectedIndexChanged">
            <Items>
                <telerik:RadComboBoxItem runat="server" Text="1" Value="1" />
                <telerik:RadComboBoxItem runat="server" Text="2" Value="2" />
                <telerik:RadComboBoxItem runat="server" Text="3" Value="3" />
                <telerik:RadComboBoxItem runat="server" Text="4" Value="4" />
            </Items>
        </telerik:RadComboBox>
    
        <br />
        <br />
    
        <asp:CheckBox ID="CheckBox1" runat="server"
            AutoPostBack="True"
            OnCheckedChanged="CheckBox1_CheckedChanged"
            Text="Check Me"
            TextAlign="Left" />
    
        <br />
        <br />
    
        <asp:TextBox ID="TextBox1" runat="server" />
    
        <telerik:RadCodeBlock runat="server">
            <script type="text/javascript">
                function onAjaxRequestStart(s, e) {
                    var target = e.get_eventTarget(),
                        checkBoxId = '<%= CheckBox1.ClientID %>';
                    if (target === checkBoxId) {
                        e.set_enableAjax(false);
                    }
                }
            </script>
        </telerik:RadCodeBlock>
    </div>
    
    
    



    函数onAjaxRequestStart(s,e){ var target=e.get_eventTarget(), checkBoxId=''; 如果(目标===复选框ID){ e、 设置_enableAjax(false); } }
    我有两个来自社区经理的问题:1-这里有人吗/2-为什么通知电子邮件对我不起作用(我选中了通知复选框)?(在这个社区,我在哪里可以问这样的问题?)
    <div>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadComboBox1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl
                            ControlID="CheckBox1"
                            UpdatePanelRenderMode="Inline" />
                        <telerik:AjaxUpdatedControl
                            ControlID="TextBox1"
                            UpdatePanelRenderMode="Inline" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
                <telerik:AjaxSetting AjaxControlID="CheckBox1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl
                            ControlID="TextBox1"
                            UpdatePanelRenderMode="Inline" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
            <ClientEvents OnRequestStart="onAjaxRequestStart" />
        </telerik:RadAjaxManager>
    
        <telerik:RadComboBox ID="RadComboBox1" runat="server"
            AutoPostBack="True"
            AppendDataBoundItems="True"
            OnSelectedIndexChanged="RadComboBox1_SelectedIndexChanged">
            <Items>
                <telerik:RadComboBoxItem runat="server" Text="1" Value="1" />
                <telerik:RadComboBoxItem runat="server" Text="2" Value="2" />
                <telerik:RadComboBoxItem runat="server" Text="3" Value="3" />
                <telerik:RadComboBoxItem runat="server" Text="4" Value="4" />
            </Items>
        </telerik:RadComboBox>
    
        <br />
        <br />
    
        <asp:CheckBox ID="CheckBox1" runat="server"
            AutoPostBack="True"
            OnCheckedChanged="CheckBox1_CheckedChanged"
            Text="Check Me"
            TextAlign="Left" />
    
        <br />
        <br />
    
        <asp:TextBox ID="TextBox1" runat="server" />
    
        <telerik:RadCodeBlock runat="server">
            <script type="text/javascript">
                function onAjaxRequestStart(s, e) {
                    var target = e.get_eventTarget(),
                        checkBoxId = '<%= CheckBox1.ClientID %>';
                    if (target === checkBoxId) {
                        e.set_enableAjax(false);
                    }
                }
            </script>
        </telerik:RadCodeBlock>
    </div>