台灣最大程式設計社群網站
線上人數
926
 
會員總數:241346
討論主題:186911
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 關於控制項當參數傳遞的問題
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於控制項當參數傳遞的問題
價值 : 50 QP  點閱數:336 回應數:6

樓主

tcyu
門外漢
0 11
645 14
發送站內信

先說聲不好意思,此篇我在c#的討論區也有詢問,因問題與asp.net有相關,
所以我在此又發一次,如果不妥,再請告訴我。

請問各位先進,小弟有些問題想請問一下,撰寫的環境如下:

1.WebForm 的開發。
2.在webform1.aspx內有1個控制項 (GridView1)。
3.有新增一個類別檔 (class1.cs),含有一個 reload 的方法。
public void reload(GridView objGV)
{
...
....
.....
}

我的問題是,以上述方式將 GridView1 當參數傳到 reload 的方法,測試是不可行的,
所以想請問是否我的語法上有錯誤,還是在觀念上本來就不可以這樣傳遞?
如果是語法上錯誤,正確的寫法應該是什麼,能否提供給我做參考?

註:我有測試過如果reload的方法寫在 webform1.aspx 的程式碼內,是可以正常傳遞 GridView1。


搜尋相關Tags的文章: [ 方法 ] , [ 參數 ] , [ 控制項 ] ,
本篇文章發表於2017-05-12 10:46
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
你的Reload傳遞GridView的目的要做什麼動作?
幫GridView做Reload?
如果只是要幫GridView做Reload,那麼寫在類別的目的是什麼?


本篇文章回覆於2017-05-12 12:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
還是在觀念上本來就不可以這樣傳遞?

您可能要思考一下
什麼樣東西,要抽出來放類別?
好處是什麼?

小喵是
邏輯、資料存取會放類別
甚至於抽出專案,寫在另外的專案中

相同的邏輯、資料存取,就可以跨專案的重複使用與維護
重複共用的UI,可以放在WebUserControl中

版面中幾乎每頁都共同的(例如header, footer, Memu, ...)
則透過MasterPage的機制來設計

不同需求不同目的,會用不同的方式
以GridView的重新綁資料(可能是您所說的reload)
有需要用的時候
直接「GridView1.DataBind()」一句話就做完的東西
實在沒必要放在任何共用的地方

以上是小喵的想法,提供樓主參考

^_^
本篇文章回覆於2017-05-12 13:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

tcyu
檢舉此回應
先謝謝板主大大的說明及提供的意見,和版大說明一下,其實我會想放在類別也是因為共用性,上述的例子是想做GridView的Reload沒錯,
因為我想將資料庫連結、SQL字串等等相關的語法都寫在1個方法內,在不同的page上如果有相同的控制項,就可以帶參數重覆呼叫,
所以才會想將控制項以參數傳入,且如果控制項能這樣操作的話,思考應用上可能可以有多種方式,
因早期接觸大多是WinForms(vb)的開發,應該是我使用觀念上有誤,我再思考一下實作方式,感謝。
本篇文章回覆於2017-05-12 18:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

MIS2000 Lab
檢舉此回應
針對問題的「標題」-- 關於控制項當參數傳遞的問題
來回答,這是可行的。

我這則範例就是您說的作法 --
FileUpload控制項「批次上傳 / 多檔案同時上傳」的範例--以「流水號」產生「變數名稱」
https://dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819.aspx


至於這樣做好不好?再另外討論

因為不太懂您「實際的需求」為何?
只知道您「想這樣做」

但您想要做的東西,是否就是真正的解法?好的解法?
那又是另一件事囉 :-)
本篇文章回覆於2017-05-12 19:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
因為我想將資料庫連結、SQL字串等等相關的語法都寫在1個方法內,在不同的page上如果有相同的控制項,就可以帶參數重覆呼叫,
所以才會想將控制項以參數傳入,且如果控制項能這樣操作的話,思考應用上可能可以有多種方式,
因早期接觸大多是WinForms(vb)的開發,應該是我使用觀念上有誤,我再思考一下實作方式,感謝。


這裡面分為兩個部分
1.資料存取
2.UI

把資料存取與UI綁在一起,個人覺得不太好

假設你有新的需求,要做手機的App,資料存取的部分是一樣的,而UI當然會有所不同
如果您把資料存取的部分寫成類別,那麼這類別,就可以抽出來另一個專案,然後ASP.NET與APP的開發都去引用這個專案
這樣這個資料存取類別就可以跨專案的共用了

至於UI
您可能很多地方,都會用到相同的UI,就以您提的GridView為例好了

希望用到的時候,不必每次都還要重新拉GridView、ObjectDataSource,重新設定
這時候,可以把GridView、ObjectDataSource做在『WebUserControl』中
資料的CRUD都做好

那麼,哪一頁要用到這個部分,把WebUserControl拉進去就可以囉
PS.當然,WebUserControl與ASP.NET間有些互相合作的部分,那要再處理

所以如果是您的需求
小喵做的話,會寫一個類別(甚至抽出到另一個專案)、一個WebUserControl
讓資料存取、與UI彼此獨立,又能相互配合,而資料存取又可以保留

^_^
本篇文章回覆於2017-05-12 20:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

tcyu
檢舉此回應
先謝謝 MIS2000大大所提供的範例,目前已成功能將控制項當參數傳遞,
再來謝謝 topcat版大的建議,將資料存取與UI分開及使用 WebUserControl來達成共用控制項的說明,
讓我有多個方式可以思考應用,非常感謝二位大大的回覆。
本篇文章回覆於2017-05-15 11:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.