2008年1月22日 星期二

替換 Courier New 字型

替換 Courier New 字型
如果您長時間在寫程式,那麼現在可以選擇一個更合適的字型

於 Vista 與 Office 2007 新增了一個 Consolas 字型,這個字形除了為固定寬度 (就是每個字都是一樣寬),另外這個字形也是ClearType 最佳化的字型,您可以於Visual Studio 2005中的 工具 -> 選項 -> 一般 -> 字型與色彩 選擇 Consolas 字型 ,如果您沒有使用 Vista 或 Office 2007 ,也可以下載 Consolas Font Pack for Microsoft Visual Studio 2005

使用 Consolas 字型的心得,除了會感覺字型會比較清晰,另外行寬也會縮短一點,這樣對於同樣的螢幕與解析度,卻可以顯示更多行的程式碼,的確可以提供一些生產力
參考網址:http://www.ruri.com.tw/blogs/tech/archive/2007/11/07/Beyond-Courier-New.aspx

2008年1月16日 星期三

javascript Function設定對某物件做PostBack的動作

function RelationSetDate(id,postBack)
{
popUpRelation.close();
if (postBack)
__doPostBack(id,'');
}
NDA系統中應用到的程式UserControl/RelationTechnology.ascx

使用AJAX.dll來實現由Client的JavaScript來及時呼叫Server的對DB取值的功能

使用AJAX.dll來實現由Client的JavaScript來及時呼叫Server的對DB取值的功能
在Key入工號的同時即時回資料庫查詢是否有符合的資料,將正確值立即帶出顯示相關的資訊(【526274三趨一17SF200】)

1. 先將ajax.dll參考到專案中
2. 在web.config中加入





3. 在要引用的.cs上Using
using Ajax;
4. 在PageLoad時加入
Ajax.Utility.RegisterTypeForAjax(typeof(GetPlanProj)); //掛入Ajax的Library
GetPlanProj=>是此.cs的ClassName
5. 攥寫Server的Function
#region Ajax 利用計畫代號查詢相關資料
[Ajax.AjaxMethod()]
public string show_pojno(string pojno)
{
string str = "";
DataTable DT = prs020.SearchPrs020(pojno);
if (DT.Rows.Count != 0)
{
//支出計畫代號,計畫名稱,計畫主持人
str = DT.Rows[0]["s20_pojno"].ToString().Trim() + ","
+ DT.Rows[0]["s20_pojcname"].ToString().Trim() + ","
+ DT.Rows[0]["s20_noinchrg"].ToString().Trim() + ","
+ DT.Rows[0]["com_cname"].ToString().Trim() + ","
+ DT.Rows[0]["com_telext"].ToString().Trim();
}
else
{
str = "none,none,none";
}
return str;
}
#endregion
6. 在要引用的元件(TextBox)上加入onkeyup的屬性,以呼叫javascript的運作
tbxProjNo.Attributes.Add("onkeyup", this.ClientID + "jsquery_pojno('');");
7. 撰寫javascript的Function動作
/* 計畫代號查詢 keyin */
Script1.Append("function " + this.ClientID + "jsquery_pojno(org) { \n");
Script1.Append("var pojno=document.all['" + tbxProjNo.ClientID + "'].value; \n");
Script1.Append("var m = GetPlanProj.show_pojno(pojno).value.split(','); \n");
Script1.Append("if(m[0]!='none'){ \n");
Script1.Append("if(typeof(document.all['" + tbxProjNo.ClientID + "']) == 'object'){document.all['" + tbxProjNo.ClientID + "'].value=m[0];} \n");
Script1.Append("if(typeof(document.all['" + tbxProjCName.ClientID + "']) == 'object'){document.all['" + tbxProjCName.ClientID + "'].value=m[1];} \n");
Script1.Append("if(typeof(document.all['" + tbxProjHost.ClientID + "']) == 'object'){document.all['" + tbxProjHost.ClientID + "'].value=m[3]+'/'+m[2]+'/'+m[4];} \n");
Script1.Append("}else{ \n");
Script1.Append("if(typeof(document.all['" + tbxProjCName.ClientID + "']) == 'object'){document.all['" + tbxProjCName.ClientID + "'].value='';} \n");
Script1.Append("if(typeof(document.all['" + tbxProjHost.ClientID + "']) == 'object'){document.all['" + tbxProjHost.ClientID + "'].value='';} \n");
Script1.Append("}} \n");
A. 請注意m = GetPlanProj.show_pojno(pojno).value.split(',')是叫用Server的Function
B. GetPlanProj是ClassName
show_pojno是FunctionName
8. NDA系統中有用到的程式其中一個GetPlanProj.ascx
其他開窗程式也大多都有用到在UserControl資料夾下

GetTip使用說明


GetTip使用說明
 效果參閱下圖


1. 先將此三個(App_Data、bin、js)資料夾都放入專案中
2. 參考bin資料夾下的3個.dll檔案(EngageCommon.dll、EngageUtil.dll、ScriptUtil.dll)
3. 在需被引用的頁面嵌入GetTip.aspx的程式

4. 在要引用的元件上設定onMouseOver的屬性
(ImageButton)fvResult.FindControl("imbtIsDulHelp")).Attributes.Add("onMouseOver", "doShowTip(event, this, 'A03')");
5. 於App_Data下設定顯示的字樣(如下)

1. aaaaaaaaaaa
2. bbbbbbbbbbb
3. ccccccccccc