从常规div ASP.net中获取代码

时间:2015-09-22 18:42:44

标签: javascript c# html asp.net

我正在尝试从常规div onMouseOver事件中获取我的代码。我其实认为这是不可能的。我考虑了很多可能性,第一个是:

<div style="float: left; position:absolute; left:-60px; top:120px;" onmouseover="<% div_MouseOver(); %>">

它确实到达后面的代码,但只是在页面加载而不是鼠标悬停...

我也考虑过javascript,但话说再说一遍,我认为任何javascript函数都不能调用C#函数。

没有一个&lt; asp:* /&gt;包含鼠标的工具在事件中,我不知道为什么,这不方便吗?

无论如何,如果有人知道如何在触及代码的事件上创建鼠标,那就是我想要的......

3 个答案:

答案 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是您唯一的选择。