iT邦幫忙

0

開發 WebPart 的時候如何引用 SqlDataSource?

你好,我使用的是 SharePoint Foundation 2010 以及 VisualStudio 2010 進行 WebPart 開發。
我在 VS2010 裡建立的 WebPart 專案中工具箱的 [資料] 中的 [Sqldatasource] 卻是反白無法使用。
但是如果我的專案是 AS.Net Web 應用程式類型的話就可以正常的使用 SqlDataSource 控制項。
我在 這個 Webpart 中需要放置一個 GridView 去連結 SqlServer 2008 並且透過 GridView 上的編輯與刪除按鈕進行資料異動作業。
目前看到最快的方法就是利用 Gridview 結合 SqlDataSource 控制項來做。
有人遇過這種問題嗎?
感謝回應,謝謝。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
kaowoei
iT邦研究生 4 級 ‧ 2013-05-31 09:50:27
最佳解答

「印象中」,就算不用拖拉的直接從程式中NEW物件出來,可以用,但是會有很多問題。
我是從這篇http://stackoverflow.com/questions/3258464/does-visual-web-part-support-objectdatasource-in-designer得到啟發的。

建議:
我目前覺得最好用的是用WCF。
回傳LIST物件,或是datatable(不建議,因為體積比較大)作為GridView的DataSource就可以了。
只是增刪改都要自己去寫,比較麻煩....
寫起來比較像這樣(我曾寫過是用ObjectDataSource,但其實差不了太多):

<pre class="c" name="code">
Dim ObjectDataSource1 As New System.Web.UI.WebControls.ObjectDataSource

ObjectDataSource1.SelectParameters.Clear()
ObjectDataSource1.TypeName = Me.[GetType]().AssemblyQualifiedName '重點是這裡要取得TypeName
ObjectDataSource1.SelectMethod = "XXX" '這裡是我更新用的class method name
ObjectDataSource1.SelectParameters.Add("sUserID", CurrentUser.GetCurrentUserID) '這裡加入SelectMethod的Parameter
ObjectDataSource1.Select()

GridViewPrjList.DataSource = ObjectDataSource1
GridViewPrjList.DataBind()

這樣子寫起來很討厭,錯了都不知道為什麼...

前面提到WCF,其實用WebServices也是可以啦..
主要是資料有對,到畫面處理時就不會太困難,因為Sharepoint Webpart Debug起來速度太慢,太磨人....

我要發表回答

立即登入回答