【问题标题】:Call C# function from asp.net [closed]从asp.net调用C#函数[关闭]
【发布时间】:2014-10-03 09:49:01
【问题描述】:

早上好,

我有以下asp图片,想添加鼠标悬停事件,如下:

<asp:Image ID="MapImage" runat="server" Height="601px" Width="469px" OnMouseOver="OnMouseOverMap"/>

我还在C#代码中添加了如下方法:

protected void OnMouseOverMap(object sender, EventArgs e)
    {
        int i = 9;
    }

我也创建了没有参数的相同方法,但我无法调用该 C# 函数。

有人可以帮我解决这个问题吗?如何从 ASP 代码中调用 C# 函数。

干杯!

【问题讨论】:

  • 您似乎误解了服务器端代码和客户端代码之间的区别。您不能直接从 onmouseover 事件中调用 C# 方法。
  • 正如@JLRishe 所说,要触发代码,您需要在鼠标悬停时回发页面,这有点奇怪......您可以使用 Ajax 从客户活动,有帮助吗?
  • 是的,我在使用 Ajax 时没有任何问题,但我不知道它是如何工作的。我是一名试图学习 asp.net 和 c# 的数据库开发人员

标签: c# asp.net


【解决方案1】:

asp:Image 对象上没有 OnMouseOver 服务器端事件。

您可以编写在客户端 onmouseover 事件上调用的 js 函数,并在该函数内触发单击隐藏按钮,或者您可以将 Image 更改为 ImageButton 并触发单击该图像。

    <asp:Image ID="MapImage" runat="server" Height="601px" Width="469px" onmouseover="javascript:foo()"/>
    <asp:Button ID="Button1" runat="server" style="display:none" OnClick="OnMouseOverMap" />

在js函数中:

    function foo()
{
document.getElementById('<%= Button1.ClientID %>').click();
}

【讨论】:

  • 谢谢!!,这对我有用。
  • 请注意,这通常会触发回发并导致您的整个页面重新加载。如果这就是你想要做的,很好,但这对我来说听起来有点奇怪。
  • @JLRishe 然后他可以用Update Panels 包装这段代码或用jqurey 进行Ajax 调用
  • @Ganesh_Devlekar 当然可以,但是通过 jQuery 使用 Ajax 调用与上面提出的解决方案无关。
【解决方案2】:

我很确定您应该在此处插入 javascript 代码,而不是“事件处理程序引用后面的代码”。例如,请参阅ASP NET image onmouseover not working

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 2012-11-26
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多