【问题标题】:Hide a Radbutton which is inside a popup when another popup form is submitted and closed upon OnClientClicking当提交另一个弹出表单并在 OnClientClicking 时关闭时,隐藏弹出窗口内的 Radbutton
【发布时间】:2020-07-18 09:32:14
【问题描述】:

我有一个页面“Main2.aspx”,在此页面内,我有一个按钮“事务”,单击此按钮会打开一个弹出表单“事务”,在此弹出窗口中,我编写了一个按钮“AddRadbutton”,然后在使用 Javascript URL 重定向时单击此“AddRadbutton”,将出现一个新的弹出“SaveDetails”表单。

此“SaveDetails”表单有一个“SaveRadButton”,单击此“SaveRadButton”后,我的表单详细信息将被保存并成功关闭弹出窗口。

我在这里面临的问题是,即使在使用“SaveDetails”表单上的“SaveRadButton”填写并提交详细信息后,“Transactions”表单上的“AddRadbutton”仍然可见。

之前,当我在“Main1.aspx”内的用户控制页面中使用相同的“SaveDetails”弹出页面时,我可以通过在服务器端编码来实现相同的场景,但在 Main2.aspx 上没有.

在 Main2.aspx 页面中,我只能在页面刷新发生时实现这一点。但我需要在“SaveDetails”弹出表单中提交表单后立即隐藏此“AddRadbutton”。

到目前为止我尝试过的技术:

下面是 AddRadButton 的代码(在 Transactions 弹出窗口中)

<div id="AddDetailsDiv" runat="server" visible="true" style="width: auto; height: auto; float: left; margin-right: 10px;">
<telerik:RadButton ID="AddRadButton" runat="server" Text="Add Details" 
CausesValidation="False" TabIndex="14" OnClientClicking="showDetailsWindow" UseSubmitBehavior="false" > 
</telerik:RadButton>
</div> 

下面是 SaveRadButton 的代码(在 SaveDetails 弹出窗口中)

<telerik:RadButton ID="SaveRadButton" runat="server" Text="Save" OnClick="InsertRadButton" 

在 OnClick 的服务器端是否有机会使用以下行来处理此问题:

 ScriptManager.RegisterStartupScript(Page, Page.GetType(), "RadWindow", "CloseBind();", true);

我尝试编写另一个 Javascript 函数并在 OnClientClickingOnClientClicked 中使用它并调用这两个函数但无法实现它,因为 Telerik UI 不支持或者我可能缺少其他东西。

我已经在服务器端尝试了这个基本的AddRadButton.Visible = false,它可以工作,但只有在页面刷新之后,但我需要在弹出表单提交后立即隐藏它。

我已经尝试在下面的代码()中进行处理,但无法实现。

 function CloseBind() {

 var oWindow = GetRadWindow();
 oWindow.close();
 oWindow.BrowserWindow.loadDetails();

 }
 function GetRadWindow() {
 var oWindow = null;
 if (window.radWindow) oWindow = window.radWindow;
 else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
 return oWindow;
 }

我已经搜索并尝试了许多与 stackoverflow 相关的问题、场景以及许多社区开发人员网站,但这些也对我没有帮助。

任何想法或建议将不胜感激。

【问题讨论】:

    标签: javascript asp.net telerik


    【解决方案1】:
    AddRadButton.Visible = false
    

    应该可以。您需要确保它位于检查IsPostbackif 内。如果这对您不起作用,则可能是WebForms lifecycle overrides 中的稍后事件,可能是与渲染相关的事件应该在其中实现,例如 OnPreRender。您还可以注册一个回调脚本(参见How can I do a call back to the code behind method using javascript (properly)?)并调用一个将display 样式更改为无的Javascript 函数。

    【讨论】:

    • Thankyou @Lajos Arpad ,我尝试在 IsPostback 中使用 AddRadButton.Visible = false 但它只有在用户端手动刷新后才能工作,直到按钮可见。我还尝试使用您建议的生命周期事件以及其他一些对我不起作用的东西。我也尝试过使用 javascript 回调服务器端代码,但它的行为很奇怪,也没有帮助。所以最后我想出了在不妨碍 Main1.aspx 的情况下向 Main2.aspx 上该页面本地的 Radwindow 引入 alert() 的解决方案。
    【解决方案2】:

    我试图通过在窗口关闭之前引入一个 alert() 来解决这个问题,以便在用户侧单击警报“确定”按钮时进行页面刷新。

    我已经尝试通过调用 Telerik 中的警报函数:RadWindow using OnClientClose="saveDetailsWindowClose"

    <telerik:RadWindowManager EnableShadow="true" Behaviors="Maximize, Close" ID="MainRadWindowManager"
                DestroyOnClose="false" Opacity="100" runat="server" Modal="true" AutoSize="false"
                
                CssClass="lte_colpopup" KeepInScreenBounds="true" RestrictionZoneID="MainContent"
                VisibleStatusbar="false" style="overflow: hidden !important">
                <Windows>
                <telerik:RadWindow ID="MyRadWindow" ReloadOnShow="true" ShowContentDuringLoad="false" OnClientClose="saveDetailsWindowClose"
                                    Width="950" Height="450" runat="server" Title="Person Details">
                </telerik:RadWindow>
                </Windows>
    
    </telerik:RadWindowManager>
     
    <telerik:RadScriptBlock ID="MasterScriptBlock" runat="server">
            
    

    我使用了以下简单的 Javascript 函数来提醒用户:

    <script type="text/javascript">
            function saveDetailsWindowClose(sender, args) {
                     alert('A Screen refresh is mandatory to load the details, so please click "OK" button to proceed');
                     window.location.reload();
            }
    </script>
    
    </telerik:RadScriptBlock>
    

    这就是我解决问题的方法,幸运的是,这些 Main1.aspx 和 Main2.aspx 以及弹出页面上的 AddRadbutton 都按预期工作。幸运的是,它没有妨碍 Main1.aspx 上的 UserControl 页面中的窗口关闭,该页面使用相同的 saveDetails.aspx 页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-31
      • 1970-01-01
      • 2012-01-26
      • 2015-07-13
      • 1970-01-01
      • 2021-10-15
      • 2021-12-29
      相关资源
      最近更新 更多