Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在RadAjaxManager中使用服务器端按钮时,不会触发单击_Asp.net_Ajax_Webforms_Telerik_Radajaxmanager - Fatal编程技术网

Asp.net 在RadAjaxManager中使用服务器端按钮时,不会触发单击

Asp.net 在RadAjaxManager中使用服务器端按钮时,不会触发单击,asp.net,ajax,webforms,telerik,radajaxmanager,Asp.net,Ajax,Webforms,Telerik,Radajaxmanager,我在RadAjaxManager中使用了几种设置。我有一个服务器控件asp按钮,单击该按钮可重新加载整个页面。为了证明我在RadAjaxManager中设置了此设置 <telerik:AjaxSetting AjaxControlID="btnPrint"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="btnPrint" LoadingPanelID="RadAjaxPan

我在RadAjaxManager中使用了几种设置。我有一个服务器控件asp按钮,单击该按钮可重新加载整个页面。为了证明我在RadAjaxManager中设置了此设置

<telerik:AjaxSetting AjaxControlID="btnPrint">
    <UpdatedControls>
        <telerik:AjaxUpdatedControl ControlID="btnPrint" LoadingPanelID="RadAjaxPanel"/>
    </UpdatedControls>
</telerik:AjaxSetting>

但由于某些原因,我的代码隐藏点击事件并没有触发。有什么想法吗

 <telerik:RadAjaxPanel ID="RadAjaxPanel"  PostBackControls="btnPrint" runat="server">
     <div class="grid-wrapper" id="subcodeDiv" style="padding: 0px; margin-top: 20px; margin-left: 0; margin-right: 0px; width: 1160px; float: left; overflow: hidden">
         <table class="subcodesdata">
            <tr>
              <td>
                <asp:Button ID="btnPrint" runat="server" Text="Print" CssClass="button" OnClick="btnPrint_Click" ></asp:Button>
              </td>
            </tr>
         </table>
    </div>
</telerik:RadAjaxPanel>

问题在于,您将
RadAjaxManager
RadAjaxPanel
应用于同一个按钮,这是错误和不必要的。你只需要在这里选择其中一种方法

请尝试以下工作代码示例。当您单击打印按钮1时,文本将加载到
span
标记中,并显示在屏幕上,而不刷新页面。打印按钮2的效果也一样

雷达面板方法

    <telerik:RadAjaxPanel runat="server" ID="rap" PostBackControls="btnPrint2">
            <div class="grid-wrapper">
            <table class="subcodesdata">
                <tr>
                    <td>
                        <asp:Button ID="btnPrint2" runat="server" Text="Print 2" CssClass="button" OnClick="btnPrint2_Click"></asp:Button>
                        <br />
                        <span runat="server" id="span2"></span>
                    </td>
                </tr>
            </table>
        </div>
    </telerik:RadAjaxPanel>

    protected void btnPrint2_Click(object sender, EventArgs e)
    {
        span2.InnerHtml = "Print button 2 clicked...";
    }
<telerik:RadAjaxManager ID="ram" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="btnPrint1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="subcodeDiv" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
</telerik:RadAjaxManager>
<div class="grid-wrapper" id="subcodeDiv" runat="server">
        <table class="subcodesdata">
            <tr>
                <td>
                    <asp:Button ID="btnPrint1" runat="server" Text="Print 1" CssClass="button" OnClick="btnPrint1_Click"></asp:Button>
                    <br />
                    <span runat="server" id="span1"></span>
                </td>
            </tr>
        </table>
    </div>
    protected void btnPrint1_Click(object sender, EventArgs e)
    {
        span1.InnerHtml = "Print button 1 clicked...";
    }


受保护的无效btnPrint2\u单击(对象发送方,事件参数e) { span2.InnerHtml=“打印按钮2已单击…”; }
RadAjaxManager方法

    <telerik:RadAjaxPanel runat="server" ID="rap" PostBackControls="btnPrint2">
            <div class="grid-wrapper">
            <table class="subcodesdata">
                <tr>
                    <td>
                        <asp:Button ID="btnPrint2" runat="server" Text="Print 2" CssClass="button" OnClick="btnPrint2_Click"></asp:Button>
                        <br />
                        <span runat="server" id="span2"></span>
                    </td>
                </tr>
            </table>
        </div>
    </telerik:RadAjaxPanel>

    protected void btnPrint2_Click(object sender, EventArgs e)
    {
        span2.InnerHtml = "Print button 2 clicked...";
    }
<telerik:RadAjaxManager ID="ram" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="btnPrint1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="subcodeDiv" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
</telerik:RadAjaxManager>
<div class="grid-wrapper" id="subcodeDiv" runat="server">
        <table class="subcodesdata">
            <tr>
                <td>
                    <asp:Button ID="btnPrint1" runat="server" Text="Print 1" CssClass="button" OnClick="btnPrint1_Click"></asp:Button>
                    <br />
                    <span runat="server" id="span1"></span>
                </td>
            </tr>
        </table>
    </div>
    protected void btnPrint1_Click(object sender, EventArgs e)
    {
        span1.InnerHtml = "Print button 1 clicked...";
    }


受保护的无效btnPrint1\u单击(对象发送者,事件参数e) { span1.InnerHtml=“打印按钮1已单击…”; }
虽然这是一个旧线程,但如果其他人仍在挣扎,它将成为解决方案。这里的问题是你不能让一个按钮自己更新。好吧,你可以,但是你的页面将无法按预期工作。相反,该按钮应更新辅助控件。当您每次单击按钮更新自身时,它只会重置自身,因此永远不会启动服务器端功能

因此,这是正确的做法:



在您的
telerik:RadAjaxPanel
中,您是否设置了
PostBackControls=“btnPrint”
是的,我试过了。请看我更新的问题。不幸的是,仍然无法尝试在
AjaxSetting
中引用
AjaxPanel
而不仅仅是按钮。使用:
我无法重现您的问题。我可以要一点吗?因为我们用作调试工具的8个魔法球实际上是不可用的。因为有人已经在用它调试他的代码了。我两个都试过了。第一个方法(RadAjaxPanel)停止事件的触发器,第二个方法(RadAjaxManager)出现刷新问题。@user2837961我注意到第二个方法中有一个输入错误,
AjaxControlID
被赋予了错误的值。我现在已经用正确的控件ID更新了它,所以请再试一次,它不会给你带来刷新问题。