今天早上包仔一打開Blog就覺得怎麼看起來怪怪的,結果定眼一看哇咧!!....頂端的Banner整個不見了,之前舊的樣板不知道丟哪去了,想了半天只好在重編一次,這次包仔學聰明了先把編好的樣板備份,免的再次遺憾。
PS:身為資訊人的包仔居然犯這種忘記備份的錯誤,真是夠了。>"<...
2008年3月1日 星期六
[+/-] : XML應用--實作圖片選擇功能
今天包仔介紹用XML檔存取方式實作一個簡易的圖片選擇。
首先製作一份用來存取的XML檔案,結構如下:
PicDetail.xml

接著製作一ASPX網頁如下:
XmlTest.aspx
XmlTest.aspx.cs
操作畫面如下:

...
首先製作一份用來存取的XML檔案,結構如下:
PicDetail.xml
接著製作一ASPX網頁如下:
XmlTest.aspx
〈div〉
〈table border="1" cellpadding="0" cellspacing="0" style="width: 512px; height: 100px"〉
〈tr〉
〈td style="width: 55px; height: 5px;" align="right" valign="middle"〉
〈asp:Label ID="Label1" runat="server" Text="選擇圖片" Width="78px"〉
〈/asp:Label〉
〈/td〉
〈td style="width: 313px; height: 5px"〉
〈asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"〉 〈/asp:DropDownList〉
〈/td〉
〈/tr〉
〈tr〉
〈td style="height: 48px;" align="center" colspan="2" valign="middle"〉
〈asp:Image ID="Image1" runat="server" /〉
〈/td〉
〈/tr〉
〈/table〉
〈/div〉
〈asp:XmlDataSource ID="XmlDataSource1" runat="server"〉
〈/asp:XmlDataSource〉
XmlTest.aspx.cs
using System;using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.XPath;
public partial class XmlTest : System.Web.UI.Page
{
const string MenuXml = "PicDetail.xml";
XPathDocument XmlD;
XPathNodeIterator iTerator;
XPathNavigator Nav;
XPathExpression expr;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MenuReader();
}
}
private void MenuReader()
{
this.DropDownList1.Items.Clear();
XmlD = new XPathDocument(Server.MapPath("~/"+ MenuXml));
Nav = XmlD.CreateNavigator();
expr = Nav.Compile("/Pics/Pic[@Text]");
iTerator = Nav.Select(expr);
ShowNodeDetail(iTerator);
}
//抓取節點屬性
void ShowNodeDetail(XPathNodeIterator iterators)
{
this.DropDownList1.Items.Clear();
try
{
while (iterators.MoveNext())
{
XPathNavigator nav2 = iterators.Current.Clone();
this.DropDownList1.Items.Add(new ListItem(nav2.GetAttribute("Text", ""), nav2.GetAttribute("ImgUrl","")));
}
this.DropDownList1.Items.Insert(0, new ListItem("--請選擇--", ""));
}
catch (Exception ex)
{ throw ex; }
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.DropDownList1.SelectedValue != "")
{
string ImgUrl = this.DropDownList1.SelectedValue;
this.Image1.ImageUrl = "~/images/" + ImgUrl;
}
}
}
操作畫面如下:
2008年2月27日 星期三
[+/-] : ASP.NET's GridView資料綁定方法
有人問包仔說GridView如果不透過ObjectDataSource......之類的元件來綁資料的話,那該如何做呢?
所以包仔就寫了一個簡單的範例如下:
GridTest.aspx


...
所以包仔就寫了一個簡單的範例如下:
GridTest.aspx
〈div〉
〈asp:Button ID="btnLoad" runat="server" Text="載入" OnClick="btnLoad_Click" /〉
〈asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"〉
〈asp:ListItem Value="0"〉開啟
〈asp:ListItem Value="1"〉關閉
〈/asp:DropDownList〉〈asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"〉〈Columns〉〈asp:BoundField HeaderText="活動日期" DataField="活動日期" 〉〈ItemStyle CssClass="textLeft" /〉〈HeaderStyle Width="45%" CssClass="textLeft" /〉〈/asp:BoundField〉〈asp:BoundField HeaderText="場次" DataField="場次" 〉〈ItemStyle HorizontalAlign="Left" /〉〈HeaderStyle HorizontalAlign="Left" Width="40%" /〉〈/asp:BoundField〉〈asp:BoundField DataField="序號" HeaderText="序號" /〉〈/Columns〉〈/asp:GridView〉〈/div〉GridTest.aspx.cs
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;
public partial class GridTest : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e) {if (!IsPostBack) {this.ViewState["MyData"] = MakeTable();GridBinding(this.ViewState["MyData"]);}}
private DataTable MakeTable() {DataTable MyTable = new DataTable("MyTable");DataColumn StartDate = new DataColumn();StartDate.ColumnName = "活動日期";DataColumn SiteRange = new DataColumn();SiteRange.ColumnName = "場次";DataColumn ID = new DataColumn();ID.ColumnName = "序號";MyTable.Columns.Add(StartDate);MyTable.Columns.Add(SiteRange);MyTable.Columns.Add(ID);return MyTable;}private void GridBinding(object sender){this.ViewState["MyData"] = sender;this.GridView1.DataSource = sender;this.GridView1.DataBind();}protected void btnLoad_Click(object sender, EventArgs e){DataTable dt = (DataTable)ViewState["MyData"];
DataRow newRow;newRow = dt.NewRow();
newRow["活動日期"] = "2008-08-01";newRow["場次"] = "不知哪一場";
int Sort = dt.Rows.Count + 1;
newRow["序號"] = Sort.ToString();
dt.Rows.Add(newRow);
this.ViewState["MyDate"] = dt;
GridBinding(this.ViewState["MyDate"]);}//選擇讓GridView序號欄位隱藏或是開啟protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){if (DropDownList1.SelectedValue != "0"){this.GridView1.Columns[2].Visible = false;}else{this.GridView1.Columns[2].Visible = true;}}}
操作畫面如下:
...
[+/-] : TreeView進階應用
包仔之前介紹了TreeView元件資料綁定方法後,最近又結合XmlDataSource此元件綁入資料至TreeView中,且看以下介紹唄!

TreeReader.aspx.cs
此為程式片段
//新增模組動作XmlTextReader reader = new XmlTextReader(Server.MapPath("/MyTest/App_Themes/" + MenuXml));
XmlDocument XmlD = new XmlDocument();
XmlD.Load(reader);
reader.Close();
XmlNode oldNode;
XmlElement root = XmlD.DocumentElement;
XmlNode newNode;
oldNode = root.SelectSingleNode("/ClassNode[@Text='樹狀節點管理']");//運用XPath搜尋
XmlElement NewElement = XmlD.CreateElement("ClassNode1");//建立節點NewElement.SetAttribute("Text",此為自行輸入之來源);
NewElement.SetAttribute("ID",此為自行輸入之來源);
oldNode.AppendChild(NewElement);
XmlD.Save(Server.MapPath("/MyTest/App_Themes/" + MenuXml));
在新增節點時,需注意所新增節點是否為目前所點選之節點的子節點。
然而修改功能與新增大致相同,唯一有分別的是針對所點選之節點作修正,指令如下:
XmlAttribute textAttr = oldNode.Attributes["Text"];XmlAttribute idAttr = oldNode.Attributes["ID"];
textAttr.Value = 此處為自行輸入值;
idAttr.Value = 此處為自行輸入值;
刪除節點時就必須注意到所點選之節點,並由其父節點來移除所點選之節點,指令如下:
ParentNode = oldNode.ParentNode;ParentNode.RemoveChild(RemoveNode);
程式操作畫面如下:
新增後之XML檔結構:
運用以上語法便可對TreeView做資料的變更囉!!
...2008年2月22日 星期五
[+/-] : ASP.NET TreeView自訂資料如何綁定名稱
2008年2月19日 星期二
[+/-] : 簡易的寄信方法
最近包仔剛好在整理之前所寫過的Mail程式,
所以就把簡單的寄信方法跟大家分享:
首先在
TestSendMail.cs中
以上方法帶入參數使用即可寄信囉!!...
所以就把簡單的寄信方法跟大家分享:
首先在
TestSendMail.cs中
MailMessage MM = new MailMessage();
/// FromMail:寄件者
/// DisPlayName:顯示寄件者名稱
/// ToMail:收件者
/// Title:信件標題
/// Content:信件內容
/// FilePath:附加檔案
public MailMessage WebMailtest(string FromMail, string DisPlayName, string ToMail, string Title, string Content, string FilePath)
{
MM.From = new MailAddress(FromMail,DisPlayName);
MM.To.Add(ToMail);
MM.Subject = Title;
MM.Body = Content;
if (FilePath != "") //判定是否有加入附加檔案
{
Attachment att = new Attachment(FilePath);
MM.Attachments.Add(att);
ContentDisposition MyCd = att.ContentDisposition;
MyCd.DispositionType = DispositionTypeNames.Inline;//指定附加檔案為信件主體一部份
}
return MM;
}
以上方法帶入參數使用即可寄信囉!!...
2008年2月17日 星期日
[+/-] : 新加入包仔的Mail連結囉
2008年2月16日 星期六
[+/-] : 新版的Blog開張囉!!
2007年11月21日 星期三
[+/-] : 日期的寫法
最近正好有用到DateTime這個類別,剛好找到這個方法可以分享
以上兩種方法可以算出一週內所有的天數
此方法可以更加改良,請聽下回分曉!!...
//取得本日之本週第一天日期(星期日)
int DaysToSubtract = (int)DateTime.Now.DayOfWeek;
DateTime dt = DateTime.Now.Subtract(System.TimeSpan.FromDays(DaysToSubtract));
new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 0, 0);
//取得本日之本週最後一日(星期六)
DateTime dt = GetStartOfCurrentWeek().AddDays(6);
new DateTime(dt.Year, dt.Month, dt.Day, 23, 59, 59, 999);
以上兩種方法可以算出一週內所有的天數
此方法可以更加改良,請聽下回分曉!!...
2007年8月11日 星期六
[+/-] : 微軟檔案上傳元件抓取路徑之問題解決
訂閱:
文章 (Atom)