摘要:會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#4)使用者登入後(新增、刪除、編輯)各種動作的權限
上一篇文章:
會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#3)使用者登入後(新增、刪除、編輯)各種動作的權限
https://dotblogs.com.tw/mis2000lab/2011/09/19/session_login_user_right_20110919
Q : 如果想要比對「使用者名稱(或是部門代號)」,
相符的才出現「編輯」、「刪除」按鈕(才有權限去修改、刪除)
該怎麼作呢? (執行結果如下)
這兩天,我在論壇上都有看見類似的發問
http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD20110922085835CCH.html
我的方法不是最好的
但(我猜)應該是「最簡單」。
1. 首先,我在畫面上產生 GridView + SqlDataSource,
並且產生 [編輯]、[刪除]的按鈕與SQL指令。
2. 然後,把第一行(欄位)的按鈕,設定為「樣版」。
把 [編輯]、[刪除]的按鈕通通隱形(.Visible = false).......又來了,障眼法!
3. 接下來要自己寫程式,
因為要比對 GridView格子裡面的「作者姓名」,所以要寫在 RowDataBound事件中
產生資料後,才能比對啊。 DataBound 就是 英文 DataBinding的「過去式」
如果條件符合(跟您說的一樣)
就利用 .FindControl()方法,抓到「刪除」按鈕,讓他呈現出來(.Visible=true)
不符合條件,就讓這按鈕隱形(.Visible = false)
程式碼的小提示:
程式碼,我們可以用 e.Row 抓到 [ GridView正在產生的那一列]
然後用 .FindControl()方法,抓到按鈕。 e.Row.FindControl("Button的ID")
.FindControl()方法,請看我寫好的習題(範例很多) -- http://www.dotblogs.com.tw/mis2000lab/Tags/findcontrol/default.aspx
上一篇文章有提供範例下載,本文的範例也在那邊。
請看 ----
登入畫面 User_Name_1_Login.aspx
文章列表 User_Name_1_List.aspx (通過帳號、密碼的檢查後,才能看到這一頁。自己寫的文章可以自己修改)
當然,這樣的作法有 "缺陷"。
因為同名同姓的太多,會引起誤判。
最好您在新增一篇文章時,除了作者姓名之外,也要加入作者編號(或是身份證ID),
這種 獨一無二的編號不會重複,比較適合用來比對、確認身份。
上面範例已經收錄在這本書裡面:http://www.tenlong.com.tw/items/9572241729?item_id=620531
微軟 MVP的 ASP.NET 4.5 專題實務 ( II )-範例應用與 4.5 新功能
【VB / C# 雙語法】
MIS2000 Lab. 周棟祥、吳進魯
- 出版商:松崗
- 出版日期:2013-08-08
- 台幣定價:
$820- 售價:7.6 折 $623 超商取貨 滿350元 免運費
- 頁數:1096 !!! (另有 五章 PDF電子書放在光碟內)
- ISBN:9572241729
- EAN:9789572241721
天瓏書局(網路書店):http://www.tenlong.com.tw/items/9572241729?item_id=620531
********************************************************************************************************************************
2012/5/10補充:
相關的範例,希望您繼續看下去:會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#6)使用者登入後,部分欄位可改、部分欄位唯讀
https://dotblogs.com.tw/mis2000lab/2012/05/10/session_login_user_right_20120510
==== 以下是廣告 ========================================================================
如果我這樣講,您還是不會寫..................
那就是程度有待加強,
我的書本都有,快點買來看吧!
因為這兩個範例,就是我上課教書時的小小補充而已
沒有書本上的基礎,不容易學會。
(初學者站都站不好了,怎麼學跳?學飛呢?)
============================================================================
為什麼我們常常在 GridView的 RowDataBound事件 或是 RowCreated事件裡面,
加上這一段 if判別式呢? Why ??
If e.Row.RowType = DataControlRowType.DataRow Then
..........
End If
說句實話,如果您手邊的書,
都沒有解釋這一段,
那你可以有更好的選擇,多買幾本回來比較吧!!
好的老師、好的書,帶你上天堂。
只教精靈步驟、只是混一學期就算了的入門書,讓你 XYZ!@#%.......
很多功能與作法都不難,你上網也都查得到範例
但你就是看不懂人家在寫啥?
為什麼這樣寫? .............很多初學者,甚至連要寫在哪個事件裡面,都搞不懂???
不要絕望,不是程度不如人,不是不適合「寫程式」,
只是你走錯路,沒抓到重點!!
哪些功能、哪些事件,通常會搭配哪幾段程式碼?作什麼用?
這些就是基礎,就是你手邊的程式碼積木!
基礎穩固,你就能用手邊的「積木」堆積成一棟大樓
就有機會做出「自己想作」的功能
複選的控制項(ListBox或是CheckBoxList、RadioButtonLits)是否都會搭配一段 For迴圈,
這樣才能抓到使用者「複選」的選項?
想當然爾,在 GridView的 RowDataBound事件 或是 RowCreated事件裡面,加上這一段 if判別式
不也是固定的範本嗎?很常用的!!
你上課的時候,老師有教嗎?
你買的書,有教你嗎?
多買幾本書,好好比較一下,
一樣要學 ASP.NET,多比較才有「自己的答案」。
本文已經收錄在書本裡面
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
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
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
ASP.NET MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。