[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 = "#";
               
                 

                 
                }
            }

沒有留言:

張貼留言

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

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