当提交另一个弹出表单并在 OnClientClicking 时关闭时隐藏弹出窗口内的 Radbutton
Hide a Radbutton which is inside a popup when another popup form is submitted and closed upon OnClientClicking
我有一个页面“Main2.aspx”,在此页面内,我有一个按钮“交易”,单击此按钮会打开一个弹出窗体“交易”,在此弹出窗口中,我编写了一个按钮“ AddRadbutton”,并在使用 Javascript URL 重定向时单击此“AddRadbutton”,将出现一个新的弹出窗口“SaveDetails”表单。
此“SaveDetails”表单有一个“SaveRadButton”,单击此“SaveRadButton”后我的表单详细信息将被保存并且弹出窗口成功关闭。
我在这里面临的问题是,即使在使用“SaveDetails”表单上的“SaveRadButton”填写并提交详细信息后,“Transactions”表单上的“AddRadbutton”仍然可见。
早些时候,当我在用户控制页面中使用相同的“SaveDetails”弹出页面时,我可以通过在服务器端编码实现相同的场景,该弹出页面位于“Main1.aspx”内,但不在此处在 Main2.aspx.
在Main2.aspx 页面中,我只能在页面刷新时实现这一点。但我需要在“SaveDetails”弹出表单中提交表单后立即隐藏此“AddRadbutton”。
到目前为止我尝试过的技术:
下面是 AddRadButton 的代码(在交易弹出窗口中)
<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 函数并在 OnClientClicking
或 OnClientClicked
中使用它并调用这两个函数但无法实现它,因为 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;
}
我搜索并尝试了许多与 Whosebug 相关的问题、场景以及许多社区开发人员网站,但这些对我也没有帮助。
如有任何想法或建议,我们将不胜感激。
AddRadButton.Visible = false
应该可以。您需要确保它位于检查 IsPostback
的 if
中。如果这对您不起作用,那么 WebForms lifecycle overrides
it, maybe a render-related event is where this should be implemented, like OnPreRender. You could also register a callback script (see How can I do a call back to the code behind method using javascript (properly)?) 中的稍后事件可能会调用 Javascript 函数,将 display
样式更改为 none.
我试图通过在 window 关闭之前引入一个 alert() 来解决这个问题,这样页面刷新就会在用户端单击“确定”警报按钮时发生。
我试过使用 OnClientClose="saveDetailsWindowClose"
在 telerik: RadWindow 中调用警报功能
<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 上使用相同 saveDetails.aspx 页面的用户控制页面中 window 的关闭。
我有一个页面“Main2.aspx”,在此页面内,我有一个按钮“交易”,单击此按钮会打开一个弹出窗体“交易”,在此弹出窗口中,我编写了一个按钮“ AddRadbutton”,并在使用 Javascript URL 重定向时单击此“AddRadbutton”,将出现一个新的弹出窗口“SaveDetails”表单。
此“SaveDetails”表单有一个“SaveRadButton”,单击此“SaveRadButton”后我的表单详细信息将被保存并且弹出窗口成功关闭。
我在这里面临的问题是,即使在使用“SaveDetails”表单上的“SaveRadButton”填写并提交详细信息后,“Transactions”表单上的“AddRadbutton”仍然可见。
早些时候,当我在用户控制页面中使用相同的“SaveDetails”弹出页面时,我可以通过在服务器端编码实现相同的场景,该弹出页面位于“Main1.aspx”内,但不在此处在 Main2.aspx.
在Main2.aspx 页面中,我只能在页面刷新时实现这一点。但我需要在“SaveDetails”弹出表单中提交表单后立即隐藏此“AddRadbutton”。
到目前为止我尝试过的技术:
下面是 AddRadButton 的代码(在交易弹出窗口中)
<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 函数并在 OnClientClicking
或 OnClientClicked
中使用它并调用这两个函数但无法实现它,因为 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;
}
我搜索并尝试了许多与 Whosebug 相关的问题、场景以及许多社区开发人员网站,但这些对我也没有帮助。
如有任何想法或建议,我们将不胜感激。
AddRadButton.Visible = false
应该可以。您需要确保它位于检查 IsPostback
的 if
中。如果这对您不起作用,那么 WebForms lifecycle overrides
it, maybe a render-related event is where this should be implemented, like OnPreRender. You could also register a callback script (see How can I do a call back to the code behind method using javascript (properly)?) 中的稍后事件可能会调用 Javascript 函数,将 display
样式更改为 none.
我试图通过在 window 关闭之前引入一个 alert() 来解决这个问题,这样页面刷新就会在用户端单击“确定”警报按钮时发生。
我试过使用 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 上使用相同 saveDetails.aspx 页面的用户控制页面中 window 的关闭。