Monday, December 22, 2008

在Text Box中按Enter觸發Send事件


1private void Page_Load(object sender, System.EventArgs e)
2{
3 Response.Write(DateTime.Now.ToString() + "
");
4
5 if(!IsPostBack){
6 txt1.Attributes.Add("onkeydown","if(event.keyCode==13){" + this.GetPostBackEventReference(btnSubmit,"") + "}");
7 }
8}
9private void btnSubmit_Click(object sender, System.EventArgs e)
10{
11 Response.Write("button 被按了");

12}

Saturday, December 20, 2008

將Data轉出到CSV檔範例

Step 1:產生Data Table、DataSet等資料源

Step 2:產生CSV內容檔
例如:
string strOutPut = @"";
strOutPut += @"";

for (int rowCount = 0; rowCount < dtbl.Rows.Count; rowCount++)
{
strOutPut += string.Format("", dtbl.Rows[rowCount]["MemberClasses"].ToString(), dtbl.Rows[rowCount]["ChName"].ToString(), dtbl.Rows[rowCount]["EnName"].ToString(), dtbl.Rows[rowCount]["BaseEMail"].ToString(), dtbl.Rows[rowCount]["AreaName"].ToString(), dtbl.Rows[rowCount]["CountryName"].ToString(), dtbl.Rows[rowCount]["CapitalName"].ToString(), dtbl.Rows[rowCount]["CityName"].ToString(), dtbl.Rows[rowCount]["CmpChAddress"].ToString(), dtbl.Rows[rowCount]["CmpEnAddress"].ToString(), dtbl.Rows[rowCount]["CmpWebSite"].ToString(), dtbl.Rows[rowCount]["CmpTel"].ToString(), dtbl.Rows[rowCount]["CmpFax"].ToString(), dtbl.Rows[rowCount]["ConPerson"].ToString(), dtbl.Rows[rowCount]["JobChTitle"].ToString(), dtbl.Rows[rowCount]["JobEnTitle"].ToString(), dtbl.Rows[rowCount]["ConSex"].ToString());
}
strOutPut += "
身份公司中文名稱公司英文名稱E-Mail地區名1地區名2地區名3地區名4公司中文地址公司英文地址網址公司電話公司傳真聯絡人中文職稱英文職稱性別
{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}
";

Step 3:匯出資料
this.EnableViewState = false;
Response.Clear();
Response.Buffer = true;
Response.Charset = "BIG5"; //設定字集
Response.AppendHeader("Content-Disposition", "attachment;filename=" + txtFileName.Text.ToString());
Response.ContentEncoding = System.Text.Encoding.GetEncoding ("BIG5");
Response.ContentType = "application/vnd.ms-excel ";
Response.Write(strOutPut);
Response.End();
dtbl.Dispose();

Tuesday, December 16, 2008

ASP.NET基礎教程-從DataView對象中增加、修改、刪除DataRowView對象

//創建和聲明DataTable對象
DataTable total=new DataTable();
//給DataTable對象添加DataColumn對象
total.Columns.Add(new DataColumn("班組",typeof(string)));
total.Columns.Add(new DataColumn("姓名",typeof(string)));
total.Columns.Add(new DataColumn("學科",typeof(string)));
total.Columns.Add(new DataColumn("成績",typeof(int)));
//聲明DataRow對象
DataRow dr=total.NewRow();
//給DataRow對象中的各列賦值
dr["班組"]= "一班";
dr["姓名"]= " 李宏";
dr["學科"]= "語文 ";
dr["成績"]=98;
//將DataRow對象添加到DataTable對象中
total.Rows.Add(dr);
dr=total.NewRow();
dr["班組"]= "一班";
dr["姓名"]= " 劉京生";
dr["學科"]= "語文 ";
dr["成績"]=96;
total.Rows.Add(dr);
//創建DataView對象,DataView對象的數據從DataTable對象中獲得
DataView dv=new DataView(total);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
一、 將DataRowView對象添加進DataView對象中
DataRowView drv=dv.AddNew();
drv["班組"]= "一班";
drv[“姓名”]= “ 趙剛";
drv["學科"]= "國文 ";
drv[“成績”]=99;
//結束編輯 可以調用DataRowView的CancelEdit()方法取消插入
Drv.EndEdit();
二、 修改現有的DataRowView對象
//開始編輯
dv[2].BeginEdit();
//修改列值
dv[2][“成績”]=98;
//對束編輯可以調用DataRowView的CancelEdit()方法取消修改
dv[2].EndEdit();
利用DataRowView的IsNew和IsEdit屬性來檢測DataRowView是否為新行或是否被編輯過。
三、 刪除現有的DataRowView對象
//調用DataView的Delete()方法,傳入要刪除的DataRowView的索引值
dv.Delete(1);
//調用DataRowView的Delete()方法刪除
dv[1].Delete();
//調用DataTable的AcceptChanges()方法永久刪除基礎DataRow。
dt.AcceptChanges();
要取消刪除,可以調用DataTable的RejectChanges()方法取消刪除,從而取消未提交的增加與修改

Thursday, December 4, 2008

ASP.NET內抓取網址的方式一覽表(Request)

假設我們的網址為http://demo.tc/Default3.aspx?id=1019&uu=77


Request.ApplicationPath
//output:/

Request.PhysicalPath
//output:磁碟機代號:\父目錄\子目錄\Default3.aspx

System.IO.Path.GetDirectoryName(Request.PhysicalPath)
//output:磁碟機代號:\父目錄\子目錄

Request.PhysicalApplicationPath
//output:磁碟機代號:\父目錄\子目錄\

System.IO.Path.GetFileName(Request.PhysicalPath)
//output:Default3.aspx

Request.CurrentExecutionFilePath
//output:/Default3.aspx

Request.FilePath
//output:/Default3.aspx

Request.Path
//output:/Default3.aspx

Request.RawUrl
//output:/Default3.aspx?id=1019&uu=77

Request.Url.AbsolutePath
//output:/Default3.aspx

Request.Url.AbsoluteUri
//output:http://demo.tc/Default3.aspx?id=1019(這是上一頁的網址)

Request.Url.Scheme
//output:http

Request.Url.Host
//output:demo.tc

Request.Url.Port
//output:80

Request.Url.Authority
//output:demo.tc

Request.Url.LocalPath
//output:/Default3.aspx

Request.PathInfo
//output:

Request.Url.PathAndQuery
//output:/Default3.aspx?id=1019&uu=77

Request.Url.Query
//output:?id=1019&uu=77

Request.Url.Query[id]
//output:1019

Request.Url.Query[uu]
//output:77

Request.Url.Fragment
//output:

Request.Url.Segments[0]
//output:/

Request.Url.Segments[1]
//output:Default3.aspx

Monday, December 1, 2008

ASP.NET 使用 GMail 寄信並讀取信件範本(Template.htm)寄送郵件 (Gmail Send Mail ASP.NET)

ASP.NET 使用 GMail 寄信並讀取信件範本(Template.htm)寄送郵件 (Gmail Send Mail ASP.NET)

Dotjum 今天要介紹的是如何使用 .NET 來透過 Gmail 來寄信,並讀取 htm 自訂信件範本的方式,
也是用在 點部落 網站目前新版本的註冊的通知。
OK,話不多說我們直接來看Code說明,
首先在上一篇中 使用 Windows Live Mail 收 GMail 的信下來 有提到Google Gmail他提供的POP3

伺服器資訊
內送郵件伺服器 (POP3): pop.gmail.com
外寄郵件伺服器 (SMTP): smtp.gmail.com

登入資訊
使用者名稱:輸入您的 Gmail 使用者名稱 (包含 @gmail.com)
密碼:輸入您的 Gmail 密碼

[外寄伺服器 (SMTP)] 方塊中輸入 465
所以程式碼這邊就做對應的設定
MailMessage em = new MailMessage();
em.From = new System.Net.Mail.MailAddress("你的Gmail帳號@gmail.com", "顯示名稱", System.Text.Encoding.UTF8);
em.SubjectEncoding = System.Text.Encoding.UTF8;
em.BodyEncoding = Encoding.UTF8;

//信件主題
em.Subject = subject;

//內容
em.Body = message;
em.IsBodyHtml = true;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

//登入帳號認證
client.Credentials = new System.Net.NetworkCredential("你的Gmail帳號@gmail.com", "你Gmail的密碼");

//使用587 Port
client.Port = 587;
client.Host = "smtp.gmail.com";

//啟動SSL
client.EnableSsl = true;

//寄出
client.Send(em);

就這樣順利就可以寄出,當然寄送範本這邊 Dotjum 是寫好一個 HTML 的範本 MailTemplate.htm



$MemberName$ 您好:


歡迎您加入專屬於IT技術園地 點部落,這是您的啟動連結 啟動連結

請點選您的啟動連結,進行下一步的設定。


.cs
StreamReader sr = null;
string strBody = "";

//讀取信件範本
try
{
sr = new StreamReader(Server.MapPath("信件範本.htm"), Encoding.Default);
strBody = sr.ReadToEnd();

}
catch (Exception ex)
{
throw ex;
}
finally
{
sr.Close();
}

//將範本內的特定變數作取代
strBody = strBody.Replace("$MemberName$", strName);
strBody = strBody.Replace("$ActiveNo$", activeGuid);