2019/0402/前端作業四-jQ應用轉換樣式&ASP.NET_FormView控制項-會員資料維護實例
前端作業四 - jQ應用轉換樣式
熟悉JQ語法,藉由切換class切換樣式,CSS樣式互斥會以後面的為主,所以必須先清除CLASS或CSS。
題外話:被觸發事件的物件不用重複寫ID,能用this代替。
發現問題:function太死,要寫活。
死 30 靜態寫死
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
.line {
border: 1px solid;
cursor: pointer;
}
.large {
font-size: 36pt;
}
.small {
font-size: 8pt;
}
.selected {
background-color: yellow;
font-weight: 900;
border: 3px solid;
}
</style>
</head>
<body>
<div id="switcher">
<span id="small">縮小</span>
<span id="default">標準</span>
<span id="large">放大</span>
</div>
<p>Hello jQuery</p>
<script src="Scripts/jquery-3.3.1.min.js"></script>
<script>
$('#switcher>span').addClass('line');
$('#large').click(function () {
$('p').removeClass().addClass('large');
$('#switcher>span').removeClass('selected');
$(this).addClass('selected');
});
$('#small').click(function () {
$('p').removeClass().addClass('small');
$('#switcher>span').removeClass('selected');
$(this).addClass('selected');
});
$('#default').click(function () {
$('p').removeClass();
$('#switcher>span').removeClass('selected');
$(this).addClass('selected');
});
</script>
</body>
</html>活 31 動態參數
三個按鈕動作都是在變更字體大小, 應該把動作註冊在三個按鈕的上一層容器, 從容器去找子輩哪個物件被點擊, 再藉由傳事件至funtion, 抓取觸發點擊事件的物件的id名稱, 當作方法的參數去進行, 事件目標物增加屬性
Bug 點擊容器div 也會觸發增加selected樣式 ,解決方法:if 是span才增加selected樣式。
相反動作toggle true <-> false 預設建立在click 缺點同時也是優點,只能做本身狀態互斥改變。
可能沒專心聽課,不知道未啥老師這邊多了cl,導致程式會跑不起來,還以為是jq版本錯了看半天,拿掉cl就好了...
滑鼠事件
又分為 up down Enter leave
hover 是 toggle的一種實現,
就必須分開寫
事件可以被記錄

問題:上一行動畫還沒執行完,就執行下一行程式。
解決: call back function 跑完 func1後才會執行func2
ASP.NET_FormView_控制項_會員資料維護實例
每個view都有它的用途,因為每個view長的都不太一樣,基於對view的型態、功能、樣式都有了解,Ex.gridview後台、datalist前台。
FormView
VS2017版本會自動產出itemtemplate、edit itemtemplate、insert itemtemplate。
Formview具有新增功能,因為具有insert itemtemplate。
Formview 一次只能顯示一筆資料。除非給予allowpaging=true屬性
實務來說會員的頁面formview不會具有換頁功能。 但管理員需要一次看到全部的資料? 所以就藉由組合girdview+formview成一個介面做不同顯示, 帳號放在左側,右側為詳細資料, IDE 對girdview右鍵 -> 編輯資料行-> commandfield -> showselectbutton 前端寫成點擊girdview帳號後, formview抓girdview點擊的參數對formview下指令與參數。
提示(以前講過):要更新的與被觸發的區域postback
區域postback使用ajax 1. 加入函式庫 ScriptManager 2. 區域用updatepanel – ContentTemplate 包起來
更改樣式與排版
後端只有三種按鈕(很重要屬性很重要)擁有commandname可用
Datalist有好幾筆所以必須要指定要更改哪一筆
那formview只會顯示一筆所以就不需要指定
Bind(可改)、Eval(pk不給改)資料繫結標準表示式
撰寫HTML的TABLE、TR、TD 再把控制項塞入,
實務上密碼與帳號不會放在會員資料同頁面修改,
關聯別張資料表並加入學位資料並把相同欄位消除(更改SQL語法),
將性別名稱布林值改為男女(也在SQL更改較方便),
驗證信通過的改為在帳號旁顯示,
且不加提示提式變成只有管理員看得懂,
問題:瀏覽器只看得懂img src tag?資料庫的媒體檔為二元編碼而不是鏈結。
如何將二進位的值轉為圖形 ? 圖並不是以檔案型式存在
都是路徑但不一定是檔案的路徑 ??
新增項目-> 泛型處理常式 HTTPhander

特性變限制
(沒有重新整理(regust/response)都會不知道伺服器更新了什麼內容)
這段泛型程式只做一件事情,去資料庫把資料取出來,把二進位轉為圖片,
不能再後端寫只能在handler寫,而泛型處理常式是handler,副檔名為ashx,sh為handler
外型跟c#長的一樣
Class 繼承 介面 多形 I interface 介面沒有實做 物件導向技術??
Class 類別名稱 繼承 一隻程式就是一個獨立的類別
寫食譜 類別是菜 ??
回傳 void無 bool不林 值
傳進來context
如果呼叫泛型則做泛型裡面寫的事情,
這裡完全沒有控制項,但可以用複製的??
記得using
回到36aspx -> img那改成跟36ashx要圖片,透過url
回到36ashx (Regust response 都是鑄造出來的)抓值要先,
context.request.方法querystring抓帳號丟在參數再丟去資料庫要資料,
原本handler是http在做,但這邊換我們來寫,
利用reader將資料讀出來,
再用方法binarywrite用二進位輸出(16轉2)轉成byte陣列 。
好處(安全性保護),另存圖檔時會存不下來,路徑是泛型處理檔案的位置。
這裡有點不清楚但上面有記下來關鍵字應該可以去查一下。
新增功能控制項 insertitemtemplate 36
Itemtemplate 轉到 insert itemtemplate 的commandName為New。
CommandName都是固定的有
edit、update;new、insert;cancel、delete;select。
拿33的ado.net新增畫面來改在insertitemtemplate, 資料要新增進資料庫都必須要有驗證器, Button的commandname一定要用insert,
問題:為什麼只是要新增又不會顯示(會顯示輸入框)卻要用bind?
只要一顆按鈕是insert,直接透過Bind抓值再透過bind直接寫回去, 以往(33ado.net)要抓值在寫回去。
改寫FormView後的結論:只要是textbox只要繫結bind,就不用寫抓值。
提示:causesvalidation:false 不受驗證器控制。
之前下拉式選單(學歷)寫在pageload但現在不能,必須寫在formview事件上面,前端onmodechange就是formview的切換唯讀與編輯事件,
以上都是在修改33轉為36的內容。
最後前端
最後後端
Last updated
Was this helpful?