2013年11月6日 星期三

LINQ to GridView

在Asp.Net WebForm裡
要呈現資料有很多選擇、做法

今天先記錄 Linq to GridView 來呈現
這邊以 NorthWind Database 來做示範(?
會先以透過精靈設定方式來完成
雖說也可以混合,但這樣子一來事後要調整什麼的話會很麻煩
就不大建議這麼做了

題外話, Asp.Net 在開發真的很快,只要拉一拉就可以完工了
可是真正想要控制一些細項或是事後要微調就……
所以一開始就要先規劃好要做什麼,怎麼做
才不會事後懊惱


首先,先加入dbml物件,不然LinqDataSource是不能動作的
再來就是從旁邊的工具箱把 GridView和LinqDataSource拉進來
接著就是開始設定資料來源了(這邊以查詢Employees為例)
















要呈現什麼樣的資料就要在這裡設定!!















LinqDataSource這邊就設定完了
要允許新增修改刪除的話再點一點就可以嘍

再來就是GridView的部分
先是選擇資料來源,然後就搞定了
細項的部分像編輯刪除或是CSS部分都可以再點一點
基本上一切就搞定了












結果如下圖
ps美工什麼的就不在這討論了^^""
















編輯更新什麼的











刪除就直接刪除了,這一點要小心
可以再加個 javascript 避免直接刪掉,如下
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" OnClientClick="javascript:return confirm('確定刪除?');" CommandName="Delete" Text="刪除"></asp:LinkButton>
把javascript寫在OnClientClick事件裡
如果按取消的話就不會觸發Command了

若有什麼欄位是不能做修改的話
只要加上 ReadOnly="True" 這個選項就好了
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False" ReadOnly="True" SortExpression="EmployeeID" />

以此範例而言,EmployeeID便為唯讀狀態了

新手發文,還請不吝指教

Question
在Employees這張表內還有個ManagerID
但實務上並不會這樣子呈現,畢境太怪了
一般來講都是直接看到經理是誰
若在SQLServer裡下SQL句可以很簡單的做到
就連SqlDataSource也可以做到
但小弟在LinqDataSource目前還沒實做出來……
有大大可以解惑嗎?






沒有留言:

張貼留言