2012年6月26日 星期二
{C#} WebForm出現彈跳視窗
//彈跳訊息後關閉視窗
public void SowAndClose()
{
Page p = (Page)System.Web.HttpContext.Current.Handler;
ClientScriptManager CSM = p.ClientScript;
String ScriptName = "close";
String ScriptMsg = "alert('我是訊息');window.opener = null;window.open('','_self');window.close();";
Type CsType = p.GetType();
if (!CSM.IsStartupScriptRegistered(CsType, ScriptName))
{
CSM.RegisterStartupScript(CsType, ScriptName, ScriptMsg, true);
}
}
//直接關閉視窗
public void Close()
{
Page p = (Page)System.Web.HttpContext.Current.Handler;
ClientScriptManager CSM = p.ClientScript;
String ScriptName = "close";
String ScriptMsg = "window.opener = null;window.open('','_self');window.close();";
Type CsType = p.GetType();
if (!CSM.IsStartupScriptRegistered(CsType, ScriptName))
{
CSM.RegisterStartupScript(CsType, ScriptName, ScriptMsg, true);
}
}
資料來源:
http://www.aspxpet.com/ArchiveHtml/2010/1/Article-2b73c5fa-9068-4f00-ae35-0065853a6111.html
2012年6月22日 星期五
{Knowledge} 輸入法下keypress事件失效、事件無法同時使用
1.在新注音中文輸入法下,輸入文字將不會觸發KeyPress事件,只會有KeyDown事件
詳細解說:http://blog.darkthread.net/post-2011-04-26-keypress-event-under-ime.aspx
2.在Jquery下,同時使用change()、keyup()事件,無法同時被觸發
詳細解說:http://paladinprogram.blogspot.tw/2011/01/jquery-change-keyup.html
詳細解說:http://blog.darkthread.net/post-2011-04-26-keypress-event-under-ime.aspx
2.在Jquery下,同時使用change()、keyup()事件,無法同時被觸發
詳細解說:http://paladinprogram.blogspot.tw/2011/01/jquery-change-keyup.html
{JavaScript} 檢查輸入是否為數值、去掉左右空白
1.是否為數值
方法一、使用rregulate------/^\d+/.exec(Value)
如為null則為非數值,反之則為數值
方法二、IsNaN(Value)
---空白也會認定是數值
方法三、isFinite(Value)
---中文字會認定是數值
2.去掉空白
去掉左右空白正規化(Regulate):/^\s+|\s+$/g
去掉右邊空白正規化(Regulate):/(\s*$)/g
去掉左邊空白正規化(Regulate):/^\s+|\s+$/g
方法一、使用rregulate------/^\d+/.exec(Value)
如為null則為非數值,反之則為數值
方法二、IsNaN(Value)
---空白也會認定是數值
方法三、isFinite(Value)
---中文字會認定是數值
2.去掉空白
去掉左右空白正規化(Regulate):/^\s+|\s+$/g
去掉右邊空白正規化(Regulate):/(\s*$)/g
去掉左邊空白正規化(Regulate):/^\s+|\s+$/g
參考資料:
2012年6月21日 星期四
{C#} Gridview Style 設定 更新時間:6/21
1.內文依資料改變欄寬
<ItemStyle Wrap="false" />
2.內文置中
<asp:TemplateField HeaderText="abc" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
HeaderStyle-HorizontalAlign="Center"---標題置中
ItemStyle-HorizontalAlign="Center"------內文置中
參考資料:http://msdn.microsoft.com/zh-tw/library/ms178296(v=vs.80).aspx
<ItemStyle Wrap="false" />
2.內文置中
<asp:TemplateField HeaderText="abc" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
HeaderStyle-HorizontalAlign="Center"---標題置中
ItemStyle-HorizontalAlign="Center"------內文置中
參考資料:http://msdn.microsoft.com/zh-tw/library/ms178296(v=vs.80).aspx
2012年6月19日 星期二
{C#}Datetime 找出本周星期幾日期
//當天本周的周五日期
var nowFriWeek = DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)) + 5));
DateTime.Now.DayOfWeek---今天為星期幾
Convert.ToInt16(DateTime.Now.DayOfWeek)---如為0,則為本周周日,以此類推
(0 - Convert.ToInt16(DateTime.Now.DayOfWeek))--要加幾天算出本周周日(本周第一天)
參考資料:
http://tw.myblog.yahoo.com/terence-lee/article?mid=164
var nowFriWeek = DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)) + 5));
DateTime.Now.DayOfWeek---今天為星期幾
Convert.ToInt16(DateTime.Now.DayOfWeek)---如為0,則為本周周日,以此類推
(0 - Convert.ToInt16(DateTime.Now.DayOfWeek))--要加幾天算出本周周日(本周第一天)
參考資料:
http://tw.myblog.yahoo.com/terence-lee/article?mid=164
{C#} Gridview 修改標題方法
方法有二,如下:
一、在Gridview1_OnRowDataBound事件下---常常起不了作用
if (e.Row.RowType==DataControlRowType.Header)
{
Gridview1.Columns[1].HeaderText="abc";
}
二、在Bind()後
Gridview1.HeaderRow.Cells[1].Text ="abc";
參考資料
http://kb.cnblogs.com/a/1571267/
http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/7a99bffa-b430-4538-8cb8-30b9fc2ad43f
一、在Gridview1_OnRowDataBound事件下---常常起不了作用
if (e.Row.RowType==DataControlRowType.Header)
{
Gridview1.Columns[1].HeaderText="abc";
}
二、在Bind()後
Gridview1.HeaderRow.Cells[1].Text ="abc";
參考資料
http://kb.cnblogs.com/a/1571267/
http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/7a99bffa-b430-4538-8cb8-30b9fc2ad43f
2012年6月18日 星期一
{C#}檢查Column是否在DataTable中
bool yesOrNo= dt.Columns.Contains("欲確認欄位名稱");
當為Fales則為不存在
當為True則為存在
參考資訊:
http://www.dotblogs.com.tw/dotjum/archive/2008/04/19/2956.aspx
當為Fales則為不存在
當為True則為存在
參考資訊:
http://www.dotblogs.com.tw/dotjum/archive/2008/04/19/2956.aspx
2012年6月15日 星期五
{Knowledge}DataTable.AcceptChanges()使用
DataTable.AcceptChanges()方法:
在使用DataRow Delete()刪除一列資料後 在使用DataTable AcceptChanges即為完全刪除(RemoveAt()),無法在回溯資料,如單純使用Delete()居則可以再回溯資料。
回溯資料的方法:RejectChanges()
參考資訊:
http://flylolo.blog.51cto.com/2743516/602066
http://tangzhongxin.blog.163.com/blog/static/89219612011222405917/
在使用DataRow Delete()刪除一列資料後 在使用DataTable AcceptChanges即為完全刪除(RemoveAt()),無法在回溯資料,如單純使用Delete()居則可以再回溯資料。
回溯資料的方法:RejectChanges()
Ex:
AcceptChanges();
Delete();
//回溯資料
RejectChanges()
//真正刪除
AcceptChanges();
參考資訊:
http://flylolo.blog.51cto.com/2743516/602066
http://tangzhongxin.blog.163.com/blog/static/89219612011222405917/
2012年6月13日 星期三
{C#} 回傳字串資料字數爆表(擴大MaxStringContentLength)
當一需要Return字串(或從資料庫撈大量字串資料回來)造成錯誤,擴大web.config MaxStringContentLength值方式--紅字處預設為8192:
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="abc" closeTimeout="00:01:00">
<readerQuotas maxDepth="32" maxStringContentLength="1000000" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="abcd" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
參考資料:
http://social.msdn.microsoft.com/Forums/is/wcf/thread/cab9a5f9-7d2e-4b64-8338-8158b2f2b332
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="abc" closeTimeout="00:01:00">
<readerQuotas maxDepth="32" maxStringContentLength="1000000" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="abcd" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
參考資料:
http://social.msdn.microsoft.com/Forums/is/wcf/thread/cab9a5f9-7d2e-4b64-8338-8158b2f2b332
{C#} 取出Dictionary Values
//一般取值
foreach (KeyValuePair<string, TempWeek> entry in dicSalesWeek)
{
DataRow newRow = dtSales.NewRow();
newRow["abc"] = entry.Value.abc;
dsSales.Tables[0].Rows.Add(newRow);
}
//取得值得集合
foreach (string s in dicSalesWeek .Values)
{
//s即為集合值之一
string a=s;
}
詳細用法參考:
http://createps.pixnet.net/blog/post/32375859-c%23-dictionary%E7%94%A8%E6%B3%95
{C#} 取得類別下所有屬性
當有一Class為下,要取得Temp1、Temp2名稱
public class Temp
{
public string Temp1{ set; get; }
public string Temp2 { set; get; }
}
方法:
Temp tempTest = new Temp();
Type temType = tempTest .GetType();
foreach (var prop in temType.GetProperties())
{
string=prop.Name;
//prop.Name為Temp1、Temp2
}
參考資料:
http://kelp.phate.org/2011/08/displaynamedescription-net-reflection.html
public class Temp
{
public string Temp1{ set; get; }
public string Temp2 { set; get; }
}
方法:
Temp tempTest = new Temp();
Type temType = tempTest .GetType();
foreach (var prop in temType.GetProperties())
{
string=prop.Name;
//prop.Name為Temp1、Temp2
}
參考資料:
http://kelp.phate.org/2011/08/displaynamedescription-net-reflection.html
{C#} GridView 欄位值某條件改變字色
當Gridview中資料符合某資料時,帶出的值變字色
在Gridview OnRowDataBound事件下,當值小於0,則變紅色字體(系統設定之紅色)
if(float.Parse(e.Row.Cells[i].Text)<0)
{
e.Row.Cells[i].ForeColor = System.Drawing.Color.Red;
}
附:改變其值
if (e.Row.Cells[6].Text == "-1")
e.Row.Cells[6].Text = "No Forecast";
參考資斗:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200610031156181Y8
在Gridview OnRowDataBound事件下,當值小於0,則變紅色字體(系統設定之紅色)
if(float.Parse(e.Row.Cells[i].Text)<0)
{
e.Row.Cells[i].ForeColor = System.Drawing.Color.Red;
}
附:改變其值
if (e.Row.Cells[6].Text == "-1")
e.Row.Cells[6].Text = "No Forecast";
參考資斗:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200610031156181Y8
2012年6月11日 星期一
{C#} 二個日期相差天數計算(TimeSpan 結構)
使用TimeSpan 結構,計算二個Datetime格式相差之天數、月、年等
//先將指定日期值轉為DateTime
if (!string.IsNullOrEmpty(abcStr))
abcDate = DateTime.ParseExact( abcStr , "yyyy/MM/dd", null);
//實際日期大於當下
if ( abcDate > DateTime.Now)
{
//找出指定日期的第一天(以週日為一週的第一天)
abcDate = abcDate .AddDays(Convert.ToDouble((0 - Convert.ToInt16( abcDate .DayOfWeek))));
//算出指定週,規則說明:以本週為第0週,算出指定日期為第幾週
var week = ( abcDate.Subtract(DateTime.Now).Days + 1) / 7; //日期相減
}
TimeSpan值屬性與方法:
Days:返回用天數計算相差天整數。(時間相差會有時、分、秒考慮,會有不滿一天的可能)
Subtract:從中減去另一個時間值。
Ticks:返回TimeSpan值的tick數。//詳見用法參考連結
TotalDays:返回時間值表示的天數。(與Days的差別是,此會將會小數點(不滿一天的相差值)
更多詳細在參考屬性、方式等資訊:
http://msdn.microsoft.com/zh-tw/library/system.timespan.aspx
參考資料:
http://www.guan8.net/Java/430623.html
Tick用法參考:
http://www.dotblogs.com.tw/darren.net/archive/2009/02/26/7303.aspx
//先將指定日期值轉為DateTime
if (!string.IsNullOrEmpty(abcStr))
abcDate = DateTime.ParseExact( abcStr , "yyyy/MM/dd", null);
//實際日期大於當下
if ( abcDate > DateTime.Now)
{
//找出指定日期的第一天(以週日為一週的第一天)
abcDate = abcDate .AddDays(Convert.ToDouble((0 - Convert.ToInt16( abcDate .DayOfWeek))));
//算出指定週,規則說明:以本週為第0週,算出指定日期為第幾週
var week = ( abcDate.Subtract(DateTime.Now).Days + 1) / 7; //日期相減
}
TimeSpan值屬性與方法:
Days:返回用天數計算相差天整數。(時間相差會有時、分、秒考慮,會有不滿一天的可能)
Subtract:從中減去另一個時間值。
Ticks:返回TimeSpan值的tick數。//詳見用法參考連結
TotalDays:返回時間值表示的天數。(與Days的差別是,此會將會小數點(不滿一天的相差值)
更多詳細在參考屬性、方式等資訊:
http://msdn.microsoft.com/zh-tw/library/system.timespan.aspx
參考資料:
http://www.guan8.net/Java/430623.html
Tick用法參考:
http://www.dotblogs.com.tw/darren.net/archive/2009/02/26/7303.aspx
2012年6月10日 星期日
{C#} DataTable 複製
DataTable dt = new DataTable();
//1.複製架構
dt = oldDt.Clone();
//2.複製資料
foreach (DataRow dr in oldDt.DataRow)
{
dt.ImportRow(dr);
}
參考資料:
http://tw.myblog.yahoo.com/frankintaiwan/article?mid=650&prev=659&l=f&fid=12
{Linq}多條件Join Table
使用多個條件,Join二個Table
Linq:
var Result= (from header in abc
join body in bcd on
new
{
one= header. 條件一 ,
two= header.條件二
} equals new { body.條件一, body. 條件二} into newResult
from body in newResult.DefaultIfEmpty()
select new abcType
{
a= body != null ? int.Parse(body.SOItemId) : 0,
b=header.CPSPN
}).ToList();
Inner Join、Outer Join、Right Join 、Left Join 示例
http://www.clarkrabbit.net/2009/01/code-snippet-left-join-inner-join-and.html
前提:兩個Join Table需是指定某類別之 List()
參考資料:
http://blog.darkthread.net/post-2010-08-12-linq-left-join.aspx
Linq:
var Result= (from header in abc
join body in bcd on
new
{
one= header. 條件一 ,
two= header.條件二
} equals new { body.條件一, body. 條件二} into newResult
from body in newResult.DefaultIfEmpty()
select new abcType
{
a= body != null ? int.Parse(body.SOItemId) : 0,
b=header.CPSPN
}).ToList();
Inner Join、Outer Join、Right Join 、Left Join 示例
http://www.clarkrabbit.net/2009/01/code-snippet-left-join-inner-join-and.html
前提:兩個Join Table需是指定某類別之 List()
參考資料:
http://blog.darkthread.net/post-2010-08-12-linq-left-join.aspx
2012年6月8日 星期五
{Knowledge} 當Excel 複製格式失效解決方式
解決方式:win xp>>控制台->新增移除程式、win 7>>程式集->解除安裝)
解除(移除)安裝>Skype Click To Call 應用程式 (ps.解除期間會要求關閉所有瀏覽器)
PS.以上不需重新啟動、不需關閉Excel
參考資料:
http://www.wretch.cc/blog/ocaltar/473166
2012年6月1日 星期五
{C#} FileUpload搭配Jquery多檔上傳、指定上傳格式
//以下條件為單檔上傳,檔案只能為Excel File2003或Excel File 2007
<asp:FileUpload ID="FileUpload1" class="multiFile" maxlength="1" accept="xls|xlsx" runat="server" />
Jquery Multiple File Upload Plugin下載js檔
載入aspx 執行FileUPload元件
屬性:
class="multiFile">>多個檔案上傳
maxlength="1">>一次只能一個
accept="xls|xlsx">>允許上傳副檔
參考資訊:http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Examples
<asp:FileUpload ID="FileUpload1" class="multiFile" maxlength="1" accept="xls|xlsx" runat="server" />
Jquery Multiple File Upload Plugin下載js檔
載入aspx 執行FileUPload元件
屬性:
class="multiFile">>多個檔案上傳
maxlength="1">>一次只能一個
accept="xls|xlsx">>允許上傳副檔
參考資訊:http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Examples
訂閱:
文章 (Atom)