2012-02-16 71 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