【发布时间】:2010-07-28 11:15:05
【问题描述】:
我有一个关于在 ascx 自定义 Web 控件中创建和管理事件的问题。
我创建了一个非常愚蠢的控件,包含一个包含 asp:Label 控件的 div,它是一个非常简单的结构:
<div id="mydiv" runat="server">
<asp:Label id="mylabel" text="Text"... />
</div>
也就是说,非常简单。 我想添加一个事件:点击。我想让用户在页面上添加此控件并将处理程序附加到此事件,以便单击此控件时可以执行某些操作。这似乎是一个奇怪的解决方案,就像我试图再次发明按钮控件,即:我的自定义按钮。 好吧,要触发事件,我想在我的 div 中添加一个 javascript 并调用一个 js 函数,该函数使用 ajax 机制调用一个服务器端函数。 那么如何从这里调用服务器端函数。我发布了一个关于如何从客户端调用服务器端函数的问题并得到了一些答案(他们中的许多人告诉我使用 PageMethods),看起来 pagemethod 不起作用,它编译但是当运行并单击我的在这里控制和执行js(在PageMethods.mymethod()行中)我有一个错误-> Java脚本异常:无法识别的方法。好像没有找到 PageMethod。
好吧,考虑到我的目标,我该怎么做? 啊,像这样的解决方案:在标签中使用点击事件不是我想要的,因为当我点击 div 时必须触发点击事件,考虑我可能会设置一个大的填充,以便一个大的空白空间可以提供一个大的可点击地区。
提前致谢。
【问题讨论】:
-
您需要首先确定您是否需要 UpdatePanel 样式的 Ajax 回发,或者是否需要“标准”Ajax 回发。如果您想要后者,那么您应该专注于让您的 PageMethods 方法发挥作用。如果你想要前者,那么有解决方案。
标签: c# asp.net events web-controls pagemethods