我有一个带有onserverclick事件的Site.master页面,当我加载一些.aspx页面时工作正常,但是在某些页面上,Site.master页面中的事件根本不会触发。 真的没有意义,并希望有人可以告诉我为什么会这样?
这是母版页中的按钮。
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Pandora.Web.WebForms.SiteMaster" %>
<input type="image" runat="server" id="btnSearchFunction" src="Images/searchIcon.png" name="image" width="16" height="20" onserverclick="btnSearchFunction_Click" />
protected void btnSearchFunction_Click(Object sender, EventArgs e)
{
//code
}
这是Site.master中的事件不想触发的页面示例
<%@ Page Title="TopicsPage" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="TopicPage.aspx.cs" Inherits="Pandora.Web.WebForms.TopicPage" %>
很抱歉,如果这一切都有点模糊
答案 0 :(得分:1)
这很神秘。我唯一想到的是,某些页面上还有另一个javascript错误,它阻止了onserverclick事件的运行,即底层的__doPostback调用。
我会通过firebug / chrome开发人员工具栏(等等)运行有问题的页面,并在控制台上查看javascript错误
同时强>
只是为了尝试 - 我会将HtmlControl更改为ImageButton(即webcontrol),只是为了看看是否有任何区别 - 将onserverclick更改为onclick。我不认为这是问题,但说实话
和强>
我假设它不能使用的页面总是相同的页面(而不是真正的间歇性页面)。如果是这样 - 在这些页面上尝试直接在页面上包含相同的按钮。那会有用吗如果确实是根本原因,它将有助于将其隔离到母版页
祝你好运