簡體   English   中英

在Calendar控件中調用Checkbox CheckedChanged事件

[英]Invoke Checkbox CheckedChanged event inside Calendar control

目前,我正在研究Asp.Net應用程序。 它有一個Asp.Net日歷控件和OnDayRender()方法,我正在其中動態添加Checkbox控件。 我也附加了CheckedChanged事件處理程序。 但是,每當我單擊復選框時,都不會調用服務器端的CheckedChanged()方法。 任何幫助將不勝感激。 謝謝。

Asp.Net代碼:

     <div>  
         <asp:Calendar  
            ID="Calendar1"   
            runat="server"  
            NextPrevFormat="FullMonth"  
            ForeColor="WhiteSmoke"  
            SelectionMode="Day"  
            DayNameFormat="Full"  
            Font-Names="Book Antiqua"  
            Font-Size="Medium"  
            OnDayRender="Calendar1_DayRender">  
        </asp:Calendar>  
    </div>  

服務器端:

    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)  
    {  
            CheckBox checkBox1 = new CheckBox();  
            checkBox1.AutoPostBack = true;  
            checkBox1.Width = 25;  
            checkBox1.Enabled = false;  
            checkBox1.CheckedChanged = checkBox1_CheckedChanged;
            e.Cell.Controls.AddAt(1, checkBox1);  
            e.Cell.Font.Size = FontUnit.XLarge;  
    }  


    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        // Do some operation...
    }

Calendar的DayRender事件正好是它所說的-在渲染給定日期的單元之前,該事件在渲染過程中觸發。 由於此事件在頁面生命周期的后期才觸發, 因此您無法添加觸發事件的控件。

日歷文檔中

“由於在渲染Calendar控件時引發了DayRender事件,因此不能添加也可以引發事件的控件,例如CheckBox。只能添加靜態控件,例如LiteralControl,Label,Image和HyperLink。”

解決方法在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM