ASP .NET Telerik按钮单击事件不触发

时间:2014-11-26 00:47:20

标签: .net events asp-classic scripting telerik

我有一个使用Telerik控件的网站。登录按钮链接不会触发与其关联的事件。这个问题在我的本地开发环境中不会发生。它仅在我部署到IIS服务器时发生。

我在IE和Chrome中运行它,它的行为方式相同。我有一个JavaScript弹出窗口,当您刷新需要单击以进入登录按钮的页面时会触发该弹出窗口。这是一个网站警告说"通过使用这个网站,你同意......哇哇哇哇哇哇哇哇哇哇哇它是唯一的JavaScript,当您单击“确认”时,它就会消失,您可以输入凭据并单击“登录”。

单击“登录”时,将触发JavaScipt popoup,您必须再次点击“确认”才能登录。

起初,我注意到我得到了一个" sys未定义"页面上的脚本错误。我查了一下,似乎有关于Telerik的web.config中可能遗漏了一些内容。我更新了IIS服务器的web.config,问题似乎已经恢复了。

除了,它回来了,我似乎无法弄清楚该怎么做。我希望提供一些故障排除技巧或其他帮助。我不确定Telerik控制器造成了多少甚至是它们。无论如何,实际上没有触发的按钮只是一个普通的ASP .NET按钮。

这里有一些代码:

首先,page指令上的AutoEventWireUp设置为True:

<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="Default.aspx.cs" Inherits="xxx.Default" %>

按钮本身的ASPX HTML在一个表格中(我知道桌子是一个很糟糕的地方,但我会责怪写这个的人。)它是登录按钮:

<td>
<asp:Button ID="login" runat="server" Text="Login" OnClick="Login_Click" SkinID="Button" ForeColor="White" Width="100px" />
</td>

代码隐藏做了一些事情,但这里的要点是它根本就不会发射。而是页面刷新自己:

        protected void Login_Click(object sender, EventArgs e)
        {
            if (Helper.DoWriteToLogFile())
            {
                Helper.WriteToCLogFile("Default.aspx -- Login_Click() clicked....");
            }
:
:

是的,我已启用日志记录,并且永远不会写入日志文件。

对于实际的Page_Load事件,我会记录事件,并且日志记录成功发生:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Helper.DoWriteToLogFile())
                {
                    Helper.WriteToLogFile("Default.aspx -- DoWriteToLogFile is enabled.");
                }
:
:

因此,我知道日志记录有效。我知道页面加载有效,但我似乎无法启动登录按钮。

我只是猜测可能因为以前发生的事情而涉及Telerik。

使用IE浏览器,我已经使用开发人员工具(F12)启用了脚本调试,但我没有看到任何直接问题。我确实看到了这个:

DOM7011: The code on this page disabled back and forward caching. For more information, see: http://go.microsoft.com/fwlink/?LinkID=291337
File: mysite.com
HTML1300: Navigation occurred.
File: mysite.com
DOM7011: The code on this page disabled back and forward caching. For more information, see: http://go.microsoft.com/fwlink/?LinkID=291337
File: mysite.comm

这些都是警告,而不是错误,我似乎无法在脚本调试器中显示任何问题。

我很难过。我对这方面的任何帮助表示感谢。 web.config的Handlers和HttpHandlers部分在我的本地开发人员和IIS服务器之间进行匹配,因此我不知道我是否需要在那里做任何事情。以下是部分:

    <httpHandlers>
      <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" />
      <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" />
      <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" />
      <add type="Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=5.1.11.713, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" path="Telerik.ReportViewer.axd" verb="*" validate="true" />
    </httpHandlers>
    <httpModules>
      <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" />
      <add name="RadCompression" type="Telerik.Web.UI.RadCompression" />
    </httpModules>
    <trace writeToDiagnosticsTrace="false" enabled="false" pageOutput="false" localOnly="true" requestLimit="400" />
    <httpCookies httpOnlyCookies="true" requireSSL="false" />
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="RadUploadModule" />
      <remove name="RadCompression" />
      <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" preCondition="integratedMode" />
      <add name="RadCompression" type="Telerik.Web.UI.RadCompression" preCondition="integratedMode" />
      <add name="Glimpse" type="Glimpse.Core.Module,Glimpse.Core" preCondition="integratedMode" />
    </modules>
    <handlers>
      <remove name="ChartImage_axd" />
      <remove name="Telerik_Web_UI_SpellCheckHandler_axd" />
      <remove name="Telerik_Web_UI_DialogHandler_aspx" />
      <remove name="Telerik_RadUploadProgressHandler_ashx" />
      <remove name="Telerik_Web_UI_WebResource_axd" />
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" />
      <add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" />
      <add name="Telerik.ReportViewer.axd_*" type="Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=5.1.11.713, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" path="Telerik.ReportViewer.axd" verb="*" preCondition="integratedMode" />
      <add name="Glimpse" path="glimpse.axd" verb="GET,POST" type="Glimpse.Core.Handler,Glimpse.Core" preCondition="integratedMode" />
    </handlers>

如果您认为我可以提供任何其他信息,请告诉我。感谢。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。我修改了web.config并进行了其他更改。基本上,在<compilation>部分下方有一个<assemblies>部分。我整体删除了<assemblies>

这解决了这个问题。