摘要:[ClientID屬性] DetailsView or FormView搭配jQueryUI (DatePicker, 挑選日期)

請先完成這篇文章的練習:
上面文章已經收錄在書本裡面:
專為學校、補習班撰寫的ASP.NET教科書

Q : 想要把上面的功能,加入 GridView or DetailsView or FormView大型控制項裡面,
該怎麼做?
我們可以發現這些 JavaScript or jQuery特效,都必須針對 HTML控制項的ID才能生效
如何抓到HTML畫面上,每一個控制項的ID?
尤其是大型控制項身體(樣板)裡面的 "子控制項" ......請看相關文章 .FindControl()方法
1. 先把畫面的DetailsView,日期欄位轉成「樣板 / Template」

2. 依照本文上面的說明(jQueryUI)
將相關檔案與程式加入 HTML的 <head>區域
3. jQuery UI的 DatePicker是我們將使用的功能
執行成果如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>DetailsView + JQuery UI (DatePicker)</title>
<!-- *** Start ************************************************************** -->
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<script>
$(function() {
$("#控制項的ID,請填寫在此。").datepicker();
});
</script>
<!-- *** End ************************************************************** -->
</head>
.....以下省略......
從執行成果,看HTML原始檔
我們可以看見「樣板」裡面的「控制項 name」
但很可惜,填寫 DetailsView1$TextBox1是不會運作的
「控制項 id」則是正確的,跟我們寫程式 .ClientID屬性一樣!

最精準的方法是用 ASP.NET控制項 的 .ClientID屬性
protected void Page_Load(object sender, EventArgs e) {
if(!Page.IsPostBack) {
TextBox TB = (TextBox)DetailsView1.FindControl("TextBox1");
Label2.Text = TB.ClientID;
}
// VB程式如下:
// Dim TB As TextBox = DetailsView1.FindControl("TextBox1")
// Label2.Text = TB.ClientID
}
填寫到HTML畫面中的 <head>區塊,放到 jQuery裡面即可。
縱然不會寫 jQuery or JavaScript
只要觀念正確、放到正確的位置,還是能運作
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>DetailsView + JQuery UI (DatePicker)</title>
<!-- *** Start ************************************************************** -->
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<script>
$(function() {
$("#DetailsView1_TextBox1").datepicker();
});
</script>
<!-- *** End ************************************************************** -->
</head>
.....以下省略......
http://msdn.microsoft.com/zh-tw/library/1d04y8ss(v=vs.110).aspx
ASP.NET Web 伺服器控制項包含下列當成識別項的屬性:
- ID - 這是您在標記中指定或藉由設定控制項的 ID 屬性來指定的 ID。
- UniqueID - 這是 ASP.NET 產生的 ID,供伺服器上執行的程式碼使用。
- ClientID - 這是 ASP.NET 產生的 ID,供用戶端程式碼使用 (它會轉譯成 HTML 程式碼中 id 屬性的值)。
*******************************************************************************************
想要修改 jQuery UI 的 datepicker 輸出日期格式
可參考:
*******************************************************************************************
該不該花時間學 jQuery / JavaScript ??
該花多少時間去學??
您要自己考量 專案或是自己的時間,自己調配
我想說的是:
很多東西,學起來沒這麼難。
與 ASP.NET搭配也沒這麼難
動手做!去體會..................從做中學!
IT是一個手工業!"動手做" 才是王道!
另外一個問題,根本範例幾乎一樣:
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約75~88hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
ASP.NET MVC線上課程 第一天 免費看 (5.5小時)
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.台灣 或 school (at) mis2000lab.net
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
................ facebook社團 https://www.facebook.com/mis2000lab ......................
................ YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
事先錄製好的影片,並非上課時側錄! 觀看影片時,有如我「一對一」跟您面對面講課。

累積時數約 95小時...... 第一天(5.5小時)完整內容,"免費"讓您評估
