2013年9月11日 星期三

{C#} Gridview 動態建立ITemplate

 class LinkColumn : ITemplate
        {
            public void InstantiateIn(System.Web.UI.Control container)
            {
                LinkButton link = new LinkButton();
                link.ID = "link";
                container.Controls.Add(link);
            }
        }
        private void CreateWoLinkColumn(string headerText)
        {
            var column = new TemplateField() { HeaderText = headerText };
            column.ItemTemplate=new LinkColumn();
            column.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            column.HeaderStyle.Wrap = false;
            MainDG.Columns.Add(column);
        }
//Page_init叫用
protected void Page_Init(object sender, EventArgs e)
        {
            CreateWoLinkColumn("aa");
        }

*動態生成Template 因每次Postback時,會重跑Page_Load function,故在第一次生成動態Template時,需寫在Page_Init 以保存控制項,爾後要取控制項的值才FindControl的到

*Page 生命週期:PreInit=>Init=>InitComplete=>PreLoad=>Load.....


參考資料:
http://blog.sina.com.cn/s/blog_8038620001012s9d.html

{C#} 取一整年 目前的週數

CultureInfo info = CultureInfo.CurrentCulture;
                //周一為新的一週;
                int iweekdNo = info.Calendar.GetWeekOfYear(DateTime.Now,CalendarWeekRule.FirstDay,DayOfWeek.Monday);

CalendarWeekRule列舉:
FirstDay    指示一年的第一週開始於該年的第一天,並結束於被指定為該週第一天的前一天。 該值為 0。
FirstFullWeek    指示一年的第一週開始於,一年的第一天當天或之後被指定為一週第一天的那天。
FirstFourDayWeek    指示一年的第一週有四天以上在被指定為該週的第一天之前。

FirstFullWeek Ex:
1/1 周五 設一週第一天為周日
=>第一周第一天日期為1/3(日)
1/1 周二 設一週第一天為周日
=>第一週第一天日期為1/1(二)



參考資料:
http://kevintsengtw.blogspot.tw/2011/09/blog-post_29.html#.Ui_AucanpBh
http://msdn.microsoft.com/zh-tw/library/system.globalization.calendarweekrule.aspx