我在我的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();
}
答案 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,当你点击它时,如果你点击一个设置为点击的部分,它只会进行回发。如果没有单击任何映射的部分,则不应生成单击的事件。