在Chrome上按“确定”时,Telerik“radconfirm”不会提高href

问题描述 投票:0回答:1

从今天起,我在ASPX LinkBut​​ton上的Telerik RadConfirm弹出消息遇到了一些麻烦。首次单击LinkBut​​ton后,将显示该消息,如果我按“确定”,则没有任何反应,并且浏览器JS控制台中没有任何错误消息可见。如果我再次按下LinkBut​​ton,PostBack事件将在第一次单击时启动。

此行为似乎仅存在于Chrome中。 Firefox,Edge和Opera不受影响。此问题仅在今天出现,并且我们在线的每个网站的行为都是相同的。

这是一个例子。请注意,使用相同作用域编写的每段代码都显示相同的行为。

<asp:LinkButton ID="docSaveBtn" runat="server" Text="Save" 
SkinID="linkButton_blue" OnClick="docSaveBtn_Click" 
OnClientClick="return radconfirm('Are you sure?', event, null ,null, null, '');" />

在页面中,呈现的HTML如下:

<a onclick="return radconfirm('Are you sure?', event, null ,null, null, '');" 
id="MC_docSaveBtn" class="linkButton_blue" aria-disabled="false" 
href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MC$docSaveBtn&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">Save</a>

更新1

编写null而不是event修复了其他ASPX控件的问题,比如ImageButton。只是为了解释一下,这是一个例子:

<asp:ImageButton ID="imgDuplica" runat="server" 
ImageUrl="~/App_Themes/AQP.v.1.0.0.1/Images/16x16/documenti.png" 
SkinID="documents_image_small" OnClick="imgDuplica_Click" ToolTip="Duplica Gara"
OnClientClick="return radconfirm('Procedere alla duplicazione della gara?', null, null, null, null, '');"  />

同样,呈现的HTML如下:

<input type="image" name="ctl00$MC$uc_RisultatoRicercaGara$rgResults$ctl00$ctl08$imgDuplica" 
id="ctl00_MC_uc_RisultatoRicercaGara_rgResults_ctl00_ctl08_imgDuplica" title="Duplica Gara" 
src="../../App_Themes/AQP.v.1.0.0.1/Images/16x16/documenti.png" 
onclick="return radconfirm('Procedere alla duplicazione della gara?', null, null, null, null, '');WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MC$uc_RisultatoRicercaGara$rgResults$ctl00$ctl08$imgDuplica&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))">

null或只是return radconfirm('');不能在Chrome 73上使用LinkBut​​ton。其他控件可以工作,所有控件都可以在不同的浏览器上运行。

从内部创建事件然后PostBack的修复程序不能很好地工作。我需要将HREF传递给事件,并且在我的项目中已经拥有的每个radconfirm上创建一个事件是不可行的。

asp.net google-chrome webforms telerik asp.net-ajax
1个回答
2
投票

我不确定这是如何起作用的。 LinkBut​​ton打开Confirm Dialog,然后,后面的PostBack将中断操作。为了防止PostBack,在ClientClick事件处理程序中尝试调用radconfirm()方法而不是返回它,然后在执行方法后调用return false;。查看Calling RadConfirm via JavaScript文章,了解使用RadConfirm的示例。

此外,用于radconfirm的callBackFunction,“event”是无效的,因为有一个名为Window.event()的内置方法并且会与之冲突。

尝试将callBackFunction更改为其他内容,例如:eventFn,myEvent,基本上更改为与现有/内置函数不冲突的任何内容。

以下是您可以尝试的正确方法的示例:

HTML标记和客户端

<script type="text/javascript">
    function eventFn(args) {
        if (args)
            __doPostBack('<%= docSaveBtn.ClientID %>', "");
    }
</script>

<asp:LinkButton ID="docSaveBtn" runat="server" Text="Save"
    SkinID="linkButton_blue" OnClick="docSaveBtn_Click"
    OnClientClick="radconfirm('Are you sure?', eventFn, null ,null, null, ''); return false;" />

<telerik:RadWindowManager ID="RadWindowManager1" runat="server"></telerik:RadWindowManager>

C# - 服务器端

protected void docSaveBtn_Click(object sender, EventArgs e)
{

}
© www.soinside.com 2019 - 2024. All rights reserved.