RegisterStartupScript, кажется, не работает над обратной передачей страницы в панели обновления

Хорошо - так работаю над системой, которая использует пользовательское управление 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 порождение обратной передачи страницы - когда я нажимаю в свои поля даты, они прекращают работать. Как в я должен смочь нажать в текстовое поле, и появляется хорошее календарное управление. Но после того, как обратная передача там не является никаким хорошим календарным появлением управления!

Это в настоящее время все переносилось (на странице хостинга) в панели обновления. Таким образом, я комментирую материал панели обновления, и даты работают после обратной передачи страницы. Таким образом, это, кажется, что-то связанное с той панелью обновления.

Какие-либо предложения?

Спасибо!!

16
задан Jen 9 June 2010 в 06:57
поделиться

1 ответ

Вы пробовали ScriptManager вместо Page.ClientScript? Я просмотрел код, который я написал раньше с помощью UpdatePanels и jQuery, и использовал ScriptManager. Я думаю, что скрипт недоступен во время частичной обратной передачи, если он не зарегистрирован в ScriptManager.

Выглядит так:

ScriptManager.RegisterStartupScript(Page, this.GetType(), "DatePickerScript", clientScript, true);
30
ответ дан 30 November 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: