cdo*_*ner 10 asp.net webforms master-pages onclick imagebutton
我有一个页面,它使用母版页,几个RequiredFieldValidators和Web Toolkit自动完成扩展程序.以下代码仅显示页面的最小值:
<%@ Page Language="C#"
AutoEventWireup="true"
CodeFile="Login.aspx.cs"
MasterPageFile="~/master.master"
Inherits="Login" %>
<asp:Content id="Content1"
contentplaceholderid="ContentPlaceHolder1"
runat="server">
<asp:UpdatePanel ID="pnlUpdate" runat="server">
<ContentTemplate>
<div>
<asp:ImageButton class="submitButton"
imageurl="images/button_submit.gif"
id="btnSubmit"
runat="server"
onclick="btnSubmit_ServerClick"/>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
protected void btnSubmit_ServerClick
(object sender, ImageClickEventArgs e)
{
//breakpoint here does not get hit
}
Run Code Online (Sandbox Code Playgroud)
该<form runat="server">
标签是在母版页.上面的代码不会触发onclick事件.如果我删除母版页并向页面添加表单标记,它就可以工作.是否不支持母版页中的表单标记,或者这应该以某种方式工作?
alt text http://digitalcopy.warnerbros.com/images/mainmenu.gif?provider=00079&disc=03403AAA-1D20-47F2-91FA-5EE632832659
您必须在某处以 runat=server 的形式拥有控件,它可以位于母版页或 .aspx 文件中。仔细检查母版页表单标记是否为 runat=server
AutoEventWireup 是允许您使用的语法的属性。仔细检查母版页、WebForm 中的设置,也可以在 web.config 中设置。
如果这不起作用,您可以随时对其进行显式编码(我更喜欢)
<script runat=server>
protected override void OnInit(EventArgs e)
{
btnSubmit.Click += delegate(object sender, EventArgs e1)
{
};
base.OnInit(e);
}
</script>
Run Code Online (Sandbox Code Playgroud)
UpdatePanel 也可能会引发服务器端事件,因此请尝试不使用 UpdatePanel。我确信您在母版页中有一个 ScriptManager
归档时间: |
|
查看次数: |
49703 次 |
最近记录: |