2012-02-16 46 views
2

我想在某些情况下显示一个jQuery对话框,当文本在附有日期选择器的文本框上发生变化时。ASP .Net TextChanged显示Jquery对话框

在我的TextChanged事件我打电话给应我的aspx页面上显示的对话框

protected void txtPickupDate_TextChanged(object sender, EventArgs e) 
{ 
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "showInfo", "showDialog();", true); 
} 

JavaScript中的JavaScript函数:

function showDialog() { 
    $("#popInfo").dialog("open"); 
} 

使用Firebug我看到javascript函数被触发但对话框从不显示。我在调用函数onClientClick的页面上放了一个asp按钮来测试函数,并且它完美地工作。

我也尝试过其他地方,但仍然没有运气提到的解决方案:

$('#popInfo').parent().appendTo(jQuery("form:first")); 

我敢肯定是有事情做与UpdatePanel的回发或但它难倒我。非常感谢任何帮助!

+0

你可以使用AJAX扩展与更新面板为什么去JQuery – Prabhavith 2012-02-16 04:02:37

回答

1

如果你已经配置了TextChanged事件,当你调试它,你可以看到它在那里,尝试thisTextChanged事件,而不是:

protected void txtPickupDate_TextChanged(object sender, EventArgs e) 
{ 
ScriptManager.RegisterStartupScript(this.Page, typeof(UpdatePanel), Guid.NewGuid().ToString(), "$(function(){$('#popInfo').dialog('open');});", true); 
} 

我假设你正在使用的UpdatePanel有一个ScriptManager。

也期待在AJAX控件工具包JQuery的自动完成插件其他方式来调用服务器端代码。

+0

感谢您的帖子帕夏。我想我已经与你发布的内容更近了一步。该对话框首次显示该行被击中,但不会再次显示,尽管该行再次运行。我还注意到,如果该行不是第一次在textchange中运行(由于条件语句),那么它将无法工作。所以非常肯定这是一个回发/更新面板问题。我正在使用一个脚本管理器的更新面板。如果这可能有帮助,可以张贴更多的代码。谢了哥们! – Washburn 2012-02-16 06:15:15

+2

我不确定你现在的所有代码如何在ASPX&ASPX.CS中看​​起来像现在,但是如果上面的函数在每次你想让它碰到并且它在UpdatePanel中被击中时,理论上它应该总是工作,你应该可以在FiireBug中的控制台的html末尾看到它。你可以稍微解释一下现在的每一件事情以及你正在使用的一些新代码。道歉,但将不得不在11小时内回复您的评论。 – 2012-02-16 09:57:14

+2

你也可以告诉我你想要达到什么目的,所以你可以考虑其他选项,比如Ive在我的回答中提出的建议。 – 2012-02-16 10:04:16