2009-10-06 2 views
2

Так что мне нужно добавить некоторые кнопки ссылок в каждую ячейку элемента управления asp: calendar динамически на основе данных в базе данных. Мне интересно, как лучше всего сделать это, чтобы кнопки ссылок были подключены к их событиям на обратной стороне (насколько мне известно, создание кнопок ссылки в событии Day Render и их добавление произойдет после того, как события LinkButton будут уволили).Добавить LinkButtons во время события OnDayRender управления календаря ASP.NET

Есть ли у кого хороший способ справиться с этим?

ответ

2

EDIT: Это хак, но он работает, вам придется получить лукавый с именованием события ... и т.д.

Markup:

<asp:Calendar id="calendar1" 
       OnDayRender="DayRender" 
       runat="server"> 

<asp:LinkButton ID="LinkButton1" style="display:none;" runat="server" 
    onclick="LinkButton1_Click">LinkButton</asp:LinkButton> 

Code-Behind:

protected void DayRender(Object source, DayRenderEventArgs e) 
{ 

    LinkButton lb = new LinkButton(); 
    lb.ID = "LinkButton1"; 
    //set all your props 
    lb.Attributes.Add("href", 
     "javascript:__doPostBack('" + Calendar1.UniqueID + "$" + lb.ClientID +"','')"); 

    e.Cell.Controls.Add(lb); 

} 

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    //do something 
} 
+0

Не происходит ли событие DayRender после события OnClick? Если это так - тогда ваш ответ не будет работать, поскольку событие Click уже обработано до того, как LinkButton получит инициализацию для его обработки. – Streklin

+0

@Rick Schott - Это очень круто, но я изо всех сил пытаюсь передать уникальный идентификатор, когда щелчок узнает, какое событие было выбрано. –

Смежные вопросы