2017年3月7日 星期二

ASP功能參考網站

動態加入GridView
http://www.allenkuo.com/genericarticle/view1374.aspx

在 DataList Web 伺服器控制項中動態建立樣板本
https://msdn.microsoft.com/zh-tw/library/6d5z5yty(VS.80).aspx

2016年12月21日 星期三

ASP.NET 如何取得 Request URL (路徑)的各個部分

我們在開發網頁應用程式,時常需要去解析網址(Request.Url)的每個片段,進行一些判斷。例如說 "http://localhost:1897/News/Press/Content.aspx/123?id=1#toc",我們想要取得網址裡第一層目錄的名字(News)用以判斷不同的頁面標題(Page Title)。
我看很多人都用字串的 IndexOf 方法與 Substring 方法:
[code:c#]
Request.Url.PathAndQuery.Substring(1, Request.Url.PathAndQuery.IndexOf("/", 1)-1)
[/code]
這實在太埋沒 .NET 的強大設計了,事實上在 Request 物件就已經提供很多方便的屬性(Property)可供取得網址的片段。
底下這張表就是各種跟 Browser Request 的網址相關的屬性與用法:

網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc
Request.ApplicationPath/
Request.PhysicalPathD:\Projects\Solution\web\News\Press\Content.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath)D:\Projects\Solution\web\News\Press
Request.PhysicalApplicationPathD:\Projects\Solution\web\
System.IO.Path.GetFileName(Request.PhysicalPath)Content.aspx
Request.CurrentExecutionFilePath/News/Press/Content.aspx
Request.FilePath/News/Press/Content.aspx
Request.Path/News/Press/Content.aspx/123
Request.RawUrl/News/Press/Content.aspx/123?id=1
Request.Url.AbsolutePath/News/Press/Content.aspx/123
Request.Url.AbsoluteUrihttp://localhost:1897/News/Press/Content.aspx/123?id=1
Request.Url.Schemehttp
Request.Url.Hostlocalhost
Request.Url.Port1897
Request.Url.Authoritylocalhost:1897
Request.Url.LocalPath/News/Press/Content.aspx/123
Request.PathInfo/123
Request.Url.PathAndQuery/News/Press/Content.aspx/123?id=1
Request.Url.Query?id=1
Request.Url.Fragment
Request.Url.Segments/
News/
Press/
Content.aspx/
123

2016年11月24日 星期四

草稿

文字方塊 輸入及時轉大寫
1.JavaScript方法:(缺點:在輸入時會先看到小寫)
<input size="30" onKeyup="this.value=this.value.toUpperCase()">

2.CSS方法:
<input size="30" style="text-transform:uppercase;" >

2016年8月15日 星期一

ASP

在ASP中 繫結資料 + Session 或其他

Text='<%# session("p_uploadUrl") + Container.DataItem %>'
Text='<%# "~" + Eval("URL") %>'

2016年8月14日 星期日

Button not firing inside Accordion Panes inside which is inside Update Panel in ASP.NET

 UpdatePanel下使用(Accordion/AccordionPane)<--AJAX開合

在AccordionPane下的Button無法Work

Answer:
在Page_Load中加入:
ScriptManager.GetCurrent(Me.Page).RegisterPostBackControl(but_fileUpload_Img)

如果是在MasterPage下請改用:
ScriptManager.GetCurrent(Me.Master.Page).RegisterPostBackControl(but_fileUpload_Img)

參考:http://stackoverflow.com/questions/27815108/button-not-firing-inside-accordion-panes-inside-which-is-inside-update-panel-in

2016年8月4日 星期四

App_Code

App_Code如何使用
session() 改為 HttpContext.Current.Session("xxx")

Application() 改為 HttpContext.Current.Application("xxx")




2016年7月20日 星期三

TreeView 的 CheckBox (4.8)

在使用 TreeView 的時候,很簡單地,大家都知道,
只要將其「ShowCheckBox」的屬性設為「True」,在該節點上,
就會產生「CheckBox」型的節點。

另外發現它也有個「TreeNodeCheckChanged」的事件,
其事件的意義就是一如往常的,只要有「勾選/取消」的動作,就會觸發。
很好,那我們便很自然地去找「AutoPostBack」的屬性…

啊?居然沒有~~那也許是程式自己已經是預設「AutoPostBack=True」了吧。
於是執行程式,可是…
它居然沒有執行「TreeNodeCheckChanged」事件底下的程式???

原來,這就是很多人指出 TreeView 的 CheckBox 半殘的地方。
因為還要另外自己再加入些程式碼(JavaScript)才行。

//要加入這個,才能引發TreeView的OnTreeNodeCheckChanged事件
function doCheck()
{
//設定「o」為產生click的來源元素(物件)
var o = window.event.srcElement;

//下條件判斷:屬於checkbox的物件,才產生postback
if (o.tagName == "INPUT" && o.type == "checkbox")
{
__doPostBack("","");
}
}

並把該「TreeView」物件,加一個「onclick="doCheck()"」的事件。