永远不会调用ImageMap的OnClick事件

时间:2010-06-04 11:54:57

标签: c# .net asp.net webforms

我在我的ascx文件中有一个ImageMap控件。当用户点击地图中的某个区域时,我正试图让某些事情发生,但该页面只是回发而没有调用我的“imageMap_Click”事件处理程序。建议?

<asp:ImageMap ID="imageMap" runat="server" ImageUrl="~/images/MapImages/map.jpg" HotSpotMode="PostBack" OnClick="imageMap_Click">

我的imageMap_Click看起来像这样,只是为了看它是否被调用:

    protected void imageMap_Click(object sender, ImageMapEventArgs e)
    {
        throw new NotImplementedException();
    }

2 个答案:

答案 0 :(得分:1)

我已经找到了。这是因为禁用了viewstate的控件,如下所示:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MapControl.ascx.cs" Inherits="XXX.MapControl" EnableViewState="false" %>

我不明白为什么。有人想告诉我吗?

答案 1 :(得分:0)

仅从文档中,您的图像映射不应该在其中具有用于点击映射的不同位置吗?

例如:

<asp:ImageMap ID="SaturnImage" 
  ImageUrl="~/saturn.PNG" 
  runat="server" OnClick="SaturnImage_Click">
  <asp:CircleHotSpot AlternateText="planet" HotSpotMode=PostBack
    PostBackValue="planet" Radius=40 X=100 Y=100 />
  <asp:CircleHotSpot HotSpotMode=Inactive 
    Radius=60 X=100 Y=100 />
  <asp:CircleHotSpot AlternateText="rings" HotSpotMode=PostBack
    PostBackValue="rings" Radius=80 X=100 Y=100 />
</asp:ImageMap>

因为我假设使用ImageMap,当你点击它时,如果你点击一个设置为点击的部分,它只会进行回发。如果没有单击任何映射的部分,则不应生成单击的事件。