[SQL]從sp取得值
[BAT]找出符合檔名檔案list,並依名稱排序,再擷取第一行的檔案名稱,複製到目的資料夾
[c#][asp.net]表單互相連結(專案使用-不一定符合不同專案)
表單互相連結,專案使用,不一定符合不同專案
1.
開啟連結與被連結的表單,均可能需要修改,以下用IFITA30F為例說明
a.
宣告formCode & formNumber,在最外層(page_load之外) ,formCode可以直接指定
#region 連結用,避免formNumber抓到錯誤的上一頁面或下一頁面定義變數
string formCode = "IFITA30F";
string formNumber = string.Empty;
#endregion
b.
page_load,連結formNumber,所有用到this.FormNumber的地方都要修改為formNumber
注意生命週期Page_Init、Page_PreInit、Page_InitComplete,會在page_load前生成,我目前表單沒有,如果有用到的要注意
#region 連結用,避免formNumber抓到錯誤的上一頁面或下一頁面
if (!IsPostBack)
{
if (Request["FormNumber"] != null)
{
formNumber = Request["FormNumber"].ToString();
}
else
{
formNumber = this.FormNumber;
}
}
#endregion
c.
Gridview中,使用連結HyperLink,直接鍵結DB data 欄位IFFORMNUM
<asp:TemplateField HeaderText="表單單號">
<ItemTemplate>
<asp:HyperLink runat="server" ID="Hbtn" Text='<%# Bind("IFFORMNUM") %>' HeaderText="表單單號" ItemStyle-Width="150px" />
</ItemTemplate>
</asp:TemplateField>
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", "opened2=window.open('" + URL + "','資訊類請採購單','width=1000,height=700,scrollbars=yes',''); opened2.opener=null; setTimeout('opened2.close()', 180000); return false;");
hl.NavigateUrl = "#";
}
}
2.
注意事項(原表單和被開啟表單均須要查看)
A.
Gridview中其他控制項,在傳送表單時,會有值需要在page_load重抓一次的寫法
a.
請在gridview做RowDataBound時,將值丟給ViewState,例如ViewState["IFITA31FD80"]
b.
Page_load重抓值時,請用ViewState["IFITA31FD80"]傳回給dataset
B.
如果Gridview有使用temptable,例如Gridview1.Temptable => 注意開啟與被開啟表單的Gridview1名稱,如果重複,可能導致抓錯Temptable
a.
如果開啟同一formCode的表單,需要開啟自己本身的表單,盡可能避開使用Temptable,改用ViewState可以有相同作用但不會錯誤
b.
開啟不同formCode的表單,只要在命名Gridview時,加入formCode名稱就可以避開問題,例如fgvD1 => fgvIFITA30D1
C.
如果有使用,關號、支號等判斷,請注意,this.StepA or (B)=> 會抓到你正在處理的表單的關號,而非被開啟的表單視窗的關號
a.
簡單判斷為formNumber == this.FormNumber,如果相等,就是正在處理的表單,如果不相等,就是被開啟的表單
b.
如必須在被開啟的表單抓到關號,請從DB抓對應formCode & formNumber的關號支號,才會正確
網頁生命週期以及順序
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/>");
}


[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 = "#";
}
}
[ASP.NET][JavaScript]JavaScript取得radiobuttenlist 值傳給控制項
{
var selValue;
var rbl = document.getElementById("ctl00_ContentPlaceHolder1_rblPORTCODE");
var rbllist = rbl.getElementsByTagName("INPUT");
for (var i = 0; i < rbllist.length; i++) {
if (rbllist[i].checked) {
selValue = rbl.childNodes[(i*2)+1].innerText;
}
}
document.getElementById('ctl00_ContentPlaceHolder1_ftbPORTNM').value = selValue;
}
--------------------------------------------------------------------------------------------------------------------
<asp:RadioButtonList ID="rblPORTCODE" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" ColumnName="PORTCODE" onchange="displayrbl();">
</asp:RadioButtonList>
[DataSet Bug]無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束
在使用TableAdapter作Query時發生 1. 原因為有些資料欄位Query出來後為null值 但是該欄位在dbDataSet的屬性AllowDBNull為False 因此把該欄位(或乾脆把全部欄位屬性AllowDBNull改為True 2. maxLength 檢...
-
當出現此訊息,標準說明網路很多" 物件尚未實體化就呼叫它的屬性或方法 " , 以下為自己遇到的以及處理方式,作為紀錄 表示有設定的物件,可能是DataTable、Int、String、陣列、object等等,未設定值(沒有值),就直接使用 1.一般的 EX ...
-
在使用TableAdapter作Query時發生 1. 原因為有些資料欄位Query出來後為null值 但是該欄位在dbDataSet的屬性AllowDBNull為False 因此把該欄位(或乾脆把全部欄位屬性AllowDBNull改為True 2. maxLength 檢...
-
色 碼 表 十六進位值排列 <font color="#RRGGBB"> #FFFFFF #DDDDDD #AAAAAA #888888 #666666 #444444 #000000 #FFB7DD #FF88C2 #FF4...