<Свойство отображения Javascript - PullRequest
0 голосов
/ 28 апреля 2010

В моей форме есть текстовое поле и календарь вместе с другими элементами управления

<asp:TextBox ID="TextBox2" runat="server"   onfocus="CalOpen()" asp:TextBox>

<asp:Calendar ID="Calendar1" runat="server" style="display:none;" 
        onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>


<script type="text/javascript">

        function CalOpen()
        {
         var cal = document.getElementById('<%=Calendar1.ClientID%>');
         cal.style.display='block';

        }
</script>

protected void Calendar1_SelectionChanged(object sender, EventArgs e)

{
    TextBox2.Text = Calendar1.SelectedDate.ToLongDateString();
    Calendar1.Visible = false;
}


protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    Calendar1.Visible = true;
}

Впервые все заработало нормально, но, во второй раз, когда я нажимаю TextBox2, то есть после первого выбора даты. Браузер выдает ошибку «требуется объект»

Я не могу знать, где я ошибся.

Пожалуйста, помогите мне исправить мой код.

Спасибо.

1 Ответ

1 голос
/ 28 апреля 2010

Когда вы пишете Calendar1.Visible = false; в коде на стороне сервера, календарь вообще не отображается. Таким образом, нет элемента календаря для отображения Javascript.

Вместо этого вы должны создать класс CSS, который применяет display: none к календарю, и установить свойство CssClass для этого класса на сервере.

Например:

<style type="text/css">
    .Hidden {
        display: none;
    }
</style>

<asp:Calendar ID="Calendar1" runat="server" CssClass="Hidden"
    onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
    TextBox2.Text = Calendar1.SelectedDate.ToLongDateString();
    Calendar1.CssClass = "Hidden";
}


protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    Calendar1.CssClass = "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...