2012-02-24 42 views
0

我正在处理一个简单的应用程序,它显示了从数据库的联系人列表。可以将新联系人添加到数据库,并且如果成功添加了新联系人,则会显示一条消息。从代码背后的文件触发jQuery事件(asp.net)

该位置显示在div内的标签中,默认设置为Visible = false。当联系人成功添加时,Visible设置为true,并在标签文本中显示一条消息。到现在为止还挺好。

事情是我希望消息在10秒后消失,并为此我想使用jQuery。我需要帮助的是如何从代码隐藏文件中触发jQuery函数。我试图检查该元素是否存在,如果是这样的话会触发该函数,但没有任何反应。

在此先感谢!

从后面的代码:

protected void ContactObjectDataSource_Inserted(object sender, ObjectDataSourceStatusEventArgs e) { 
     if (e.Exception != null) { 
      AddErrorMessage("An error occurred."); 
      e.ExceptionHandled = true; 
     } 
     else { 
      successMessage.Visible = true; 
      message.Text = "The contact was successfully added!"; 
     } 
    } 

从Default.aspx的:

<div id="successMessage" runat="server" visible="False"> 
      <asp:Label ID="message" runat="server"></asp:Label> 
    </div> 

从JS文件:

var Capsule = { 

    hideMessage: function() { 
     setTimeout(function() { 
       $("#successMessage").hide("fade", {}, 1000); 
     }, 5000); 
    } 
} 

window.onload = Capsule.init; 

回答

1

您可以使用下面的代码来调用的jQuery来自c#的功能:

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>hideMessage();</script>", false); 
+0

我已经添加了该行,但它似乎并没有工作?我进行了调试,以便我可以看到该行真正执行。我有我的jQuery代码在一个单独的js.file(我已经测试过它的工作原理),如果这很重要。 – holyredbeard 2012-02-24 08:59:04

0

嗨在这里做这个,你可以使用Ajax.dll并创建Ajax.Method。

注意:但不能在此方法中使用任何服务器端控件。你需要传递你的方法中的值,并在客户端显示你的消息。返回false不会回发你的页面。

参考下面的实际实施部分。

Refer this link.