網頁生命週期以及順序

各個頁面的生命週期以及順序

protected void Page_PreRender(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_PreRender 事件<br/>");
}

protected void Page_PreRenderComplete(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_PreRenderComplete 事件<br/>");
}
protected void Page_PreInit(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_PreInit 事件<br/>");
}

protected void Page_Init(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_Init 事件<br/>");
}

protected void Page_InitComplete(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_InitComplete 事件<br/>");
}

protected void Page_PreLoad(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_PreLoad 事件<br/>");
}

protected void Page_Load(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_Load 事件<br/>");
}

protected void Page_LoadComplete(object sender, EventArgs e)
{
   Response.Write("MasterPage Page_LoadComplete 事件<br/>");
}
執行網頁看看印出的結果如下
如果ASPX網頁有加入了MasterPage 結果如下

[JavaScript][C#][ASP.NET]ASP.NET Gridview 建立 HyperLink,C#動態產生連結後,用JavaScript開啟視窗+自動關閉

此寫法為因應專案需要,不一定是最好的解法

1. 引擎只吃動態產生的連結(需透過呼叫特定方法,EX: DataManager)
2. 接手專案 o r由廠商開發之後自行維護
3. 寫在JavaScript可能比較不好串參數
-------------------------------------------------
4. 自己的專案,作為紀錄 => 儲存前 pageload 要 databound gridview 為null的table
  if (Request["FormNumber"] != null)
            {
                formNumber = Request["FormNumber"].ToString();
            }
            else
            {
                formNumber = this.FormNumber;
            }
5. Detail gridview 名稱盡量區別,gv.TempTable時才部會抓錯誤

[JavaScript]
    <script type="text/javascript">
        var opened; //設定關閉視窗用的全域變數 IE8必須,IE11不需要
    </script>

[ASP.NET]
Gridview
<asp:TemplateField HeaderText="表單單號">
                            <ItemTemplate>
                                <asp:HyperLink runat="server" ID="Hbtn" Text='<%# Bind("IFFORMNUM") %>' HeaderText="表單單號" ItemStyle-Width="150px" />
                           
                            </ItemTemplate>
                        </asp:TemplateField>

[C#]
RowDataBound
 foreach (Control c in e.Row.Cells[3].Controls)
            {

                if (c.GetType().Equals(typeof(HyperLink)))
                {
                    HyperLink hl = (HyperLink)c;
                    string FormCode = "IFITA30F";
             
                    HyperLink Hbtn = (HyperLink)e.Row.Cells[3].FindControl("Hbtn");
                    string FormNumber = Hbtn.Text;
           
                    string COMPID = ftbCOMPID.Text;

                    string PARM = "FormCode=" + FormCode + "&FormNumber=" + FormNumber + "&COMPID=" + COMPID;
                    string TempURL = ResolveClientUrl("~/Apps/FORM/" + FormCode + "/" + FormCode + ".aspx?PGMID=VIEW&" + PARM + "&");
                    string URL = (DataManager.ResolveValidUrl(TempURL, "FCOM010"));
                 
                 
                 
                    hl.Attributes.Add("onclick", "opened=window.open('" + URL + "','資 訊類請採購單','width=1000,height=700,scrollbars=yes',''); opened.opener=null; setTimeout('opened.close()', 5000); return false;");
                    hl.NavigateUrl = "#";
               
                 

                 
                }
            }

[C#][ASP.NET]在Gridview插入隨欄位產生的HyperLink

原因:原始的方法,連接字串參數只能放在後面
以下方式就能產生,依照定義的字串去產生連結

[ASP.NET]

<asp:TemplateField HeaderText="表單單號">
<ItemTemplate>
<asp:HyperLink runat="server" ID="Hbtn" Text='<%# Bind("IFFORMNUM") %>' HeaderText="表單單號" ItemStyle-Width="150px" />
</ItemTemplate>
</asp:TemplateField>

[C#]
在RowDataBound裡

            foreach (Control c in e.Row.Cells[3].Controls) //隨欄位插入

            {

                if (c.GetType().Equals(typeof(HyperLink)))

                {

                    HyperLink hl = (HyperLink)c;

                    string FormCode = "IFITA30F";

                    string FormNumber = ftbFORMNUM.Text;

                    string COMPID = ftbCOMPID.Text;

    //連線字串隨專案需求,最簡單直接指定URL即可

                    string PARM = "FormCode=" + FormCode + "&FormNumber=" + FormNumber + "&COMPID=" + COMPID;

                    string TempURL = ResolveClientUrl("~/Apps/FORM/" + FormCode + "/" + FormCode + ".aspx?PGMID=VIEW&" + PARM + "&");

                    string URL = (DataManager.ResolveValidUrl(TempURL, "FCOM020"));

         



                    hl.Attributes.Add("onclick", "window.open('" + URL + "','資訊類請採購單','width=1000,height=700,scrollbars=yes','');return false;");

                    hl.NavigateUrl = "#";

                }

            }

[DataSet Bug]無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束

在使用TableAdapter作Query時發生 1. 原因為有些資料欄位Query出來後為null值 但是該欄位在dbDataSet的屬性AllowDBNull為False 因此把該欄位(或乾脆把全部欄位屬性AllowDBNull改為True 2. maxLength 檢...