Хорошо - так работаю над системой, которая использует пользовательское управление datepicker (я знаю, что там существуют другие.. но поскольку непротиворечивость хотела бы понять, почему моя текущая проблема происходит, и зафиксируйте ее).
Таким образом, это - пользовательский пользовательский элемент управления с текстовым полем, и на Page_PreRender делает это:
protected void Page_PreRender(object sender, EventArgs e)
{
string clientScript = @"
$(function(){
$('#" + this.Date1.ClientID + @"').datepicker({dateFormat: 'dd/mm/yy', constrainInput: true});
});";
Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID, clientScript, true);
//Type t = this.GetType();
//if (!Page.ClientScript.IsStartupScriptRegistered(t, this.ClientID))
//{
// Page.ClientScript.RegisterStartupScript(t, this.ClientID, clientScript, true);
//}
}
Проигнорируйте прокомментированный материал - который был я пробующий что-то другое - не помог.
Моя проблема - то, что это все хорошо работает, когда я загружаю страницу. Но если я выбираю что-то из dropdownlist порождение обратной передачи страницы - когда я нажимаю в свои поля даты, они прекращают работать. Как в я должен смочь нажать в текстовое поле, и появляется хорошее календарное управление. Но после того, как обратная передача там не является никаким хорошим календарным появлением управления!
Это в настоящее время все переносилось (на странице хостинга) в панели обновления. Таким образом, я комментирую материал панели обновления, и даты работают после обратной передачи страницы. Таким образом, это, кажется, что-то связанное с той панелью обновления.
Какие-либо предложения?
Спасибо!!
Вы пробовали ScriptManager вместо Page.ClientScript? Я просмотрел код, который я написал раньше с помощью UpdatePanels и jQuery, и использовал ScriptManager. Я думаю, что скрипт недоступен во время частичной обратной передачи, если он не зарегистрирован в ScriptManager.
Выглядит так:
ScriptManager.RegisterStartupScript(Page, this.GetType(), "DatePickerScript", clientScript, true);