我正在尝试从常规div onMouseOver事件中获取我的代码。我其实认为这是不可能的。我考虑了很多可能性,第一个是:
<div style="float: left; position:absolute; left:-60px; top:120px;" onmouseover="<% div_MouseOver(); %>">
它确实到达后面的代码,但只是在页面加载而不是鼠标悬停...
我也考虑过javascript,但话说再说一遍,我认为任何javascript函数都不能调用C#函数。
没有一个&lt; asp:* /&gt;包含鼠标的工具在事件中,我不知道为什么,这不方便吗?
无论如何,如果有人知道如何在触及代码的事件上创建鼠标,那就是我想要的......
答案 0 :(得分:3)
您需要牢牢掌握Web应用程序中客户端和服务器的分离方式。不,你不能直接从JavaScript调用ASP.NET背后的代码。您可以导致回发,但页面将被重新加载。这会导致糟糕的用户体验。
在客户端坚持使用JavaScript会更好。根据您的需要,您可能根本不需要服务器端参与。如果您这样做,通常最清洁的方法是将AJAX,Web套接字或类似技术应用到您的应用程序中。
服务器控件可以有onMouseOver
,但它只会运行客户端代码。由于将鼠标悬停在某物上而引起回发,这是荒谬的。
答案 1 :(得分:2)
您需要使用JavaScript并让它调用__doPostBack,它模拟服务器端控件的行为。
请注意,如果您不想在鼠标移过该div时立即刷新整个页面,则需要将其放在服务器端UpdatePanel
控件内。< / p>
Antoine的编辑:我发现了,感谢Paul:
<div style="float: left; position:absolute; left:-60px; top:120px;" onmouseover="div_MouseOver();">
<script type="text/javascript">
function div_MouseOver() {
__doPostBack();
}
</script>
保罗再次提出:你可能想进一步关注__doPostBack的论点。我建议谷歌搜索一些关于这个主题的文章,因为它很复杂,所以单段答案并不理想。
答案 2 :(得分:0)
如果您事先知道数据,则可以在javascript变量中呈现来自代码的代码,然后根据需要显示/或对该数据执行操作。
如果数据是动态的,Ajax是您唯一的选择。