powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / рендеринг календаря
6 сообщений из 6, страница 1 из 1
рендеринг календаря
    #33994452
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как при рендеринге дня календаря приаттачить к дню js-событие onclick?
чтобы при клике вызывалась js-функция, а не postback.
...
Рейтинг: 0 / 0
рендеринг календаря
    #33994753
RustM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, <Аноним>, Вы писали:

А>как при рендеринге дня календаря приаттачить к дню js-событие onclick?
А>чтобы при клике вызывалась js-функция, а не postback.

Вот пример из MSDN

Одним словом, подписываешься на событие DayRender , в котором и переопределяешь стандартное поведение. Думаю в этом примере не составит труда разобраться

<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>

   <script runat="server">
   
      void DayRender(Object sender, DayRenderEventArgs e) 
      {
         // Change the background color of the days in the month
         // to yellow.
         if (!e.Day.IsOtherMonth && !e.Day.IsWeekend)
         {
            e.Cell.BackColor=System.Drawing.Color.Yellow;
         }

         // Add custom text to cell in the Calendar control.
         if (e.Day.Date.Day == 18)
         {
            e.Cell.Controls.Add(new LiteralControl("<br>Holiday"));
         }
      }

      void Page_Load(Object sender, EventArgs e)
      {
         // Manually register the event-handling method for the DayRender  
         // event of the Calendar control.
          Calendar1.DayRender += new DayRenderEventHandler(this.DayRender);
      }

   </script>
 
</head>
 
<body>
 
   <form runat="server">

      <h3>Calendar DayRender Example</h3>
 
      <asp:Calendar id="Calendar1" runat="server">
         <WeekendDayStyle BackColor="gray" />
      </asp:Calendar>
                   
   </form>
          
</body>
</html>... << RSDN@Home 1.2.0 alpha rev. 655>>
...
Рейтинг: 0 / 0
рендеринг календаря
    #33995853
Red Bird
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, RustM, Вы писали:

RM>Здравствуйте, <Аноним>, Вы писали:

А>>как при рендеринге дня календаря приаттачить к дню js-событие onclick?
А>>чтобы при клике вызывалась js-функция, а не postback.

RM>Вот пример из MSDN

RM>Одним словом, подписываешься на событие DayRender , в котором и переопределяешь стандартное поведение. Думаю в этом примере не составит труда разобраться

[skip]

В этом примере событие обрабатывается на стороне сервера.
А насколько я понял, автору поста нужен скрипт на стороне клиента.
...
Рейтинг: 0 / 0
рендеринг календаря
    #33995999
снежок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RB>В этом примере событие обрабатывается на стороне сервера.
RB>А насколько я понял, автору поста нужен скрипт на стороне клиента.
Нет, на клиенте в этом нет необходимости. там довольно просто PostBack перехватить можно.
А если на стороне сервера , то надо в OnDayRender чистить конролы надо e.Cell.Controls.Clear()
и перерисовывать все заново. А я предполагал что к самому первому контролу как то достучаться можно в этом событии и приаттачить один атрибут. вместо того что бы все перерисовывать...... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
рендеринг календаря
    #33996276
RustM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Red Bird, Вы писали:

RB>В этом примере событие обрабатывается на стороне сервера.
RB>А насколько я понял, автору поста нужен скрипт на стороне клиента.

Так в чем проблема? Вот пример с приаттачиванием нужного события


        private void DayRender(object sender, DayRenderEventArgs e)
        {
            HyperLink link   = new HyperLink();
            link.Text        = e.Day.Date.Day.ToString();
            
            // Добавляем url
            link.NavigateUrl = ResolveUrl("~/Default.aspx?") + e.Day.Date;            
            // если хочется отлавливать клик
            link.Attributes.Add("onclick", String.Format("alert('{0}'); return false;", e.Day.Date));
            
            e.Cell.Controls.Clear();
            e.Cell.Controls.Add(link);
        }... << RSDN@Home 1.2.0 alpha rev. 655>>
...
Рейтинг: 0 / 0
рендеринг календаря
    #33996483
снежок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RM>Так в чем проблема? Вот пример с приаттачиванием нужного события
Все тоже самое без e.Cell.Controls.Clear();
А достать e.Cell.Controls[0] и приаттачить к нему.
А так придется повторно обрабатывать то, что уже обработано выше по стеку, то есть если выходной — брать стил выходного — выводить на таком то фоне таким то цветом, если день другого месяца — брать стил... и т.п.... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / рендеринг календаря
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]