ASP .Net TextChanged, чтобы показать диалог Jquery - PullRequest
2 голосов
/ 16 февраля 2012

Я хочу отображать диалоговое окно jquery при определенных условиях, когда текст изменяется в текстовом поле, к которому прикреплен указатель даты.

В моем событии TextChanged я вызываю функцию javascript, которая должна отображать диалоговое окно

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

Javascript на моей странице aspx:

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

Использование firebug Я вижу, что функция javascript запущена, но диалог никогда не отображается. Я поместил кнопку asp на страницу, вызывающую функцию onClientClick, чтобы протестировать функцию, и она отлично работает.

Я также попробовал решение, упомянутое еще где, но все еще не повезло:

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

Я почти уверен, что это как-то связано с панелями обновления или постбэками, но это поставило меня в тупик. Очень ценю любую помощь!

1 Ответ

1 голос
/ 16 февраля 2012

Если вы настроили событие 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 Control Tool Kit и Плагин автозаполнения JQuery , чтобы узнать о других способах вызова кода на стороне сервера.

...