台灣最大程式設計社群網站
線上人數
1688
 
會員總數:246056
討論主題:189637
歡迎您免費加入會員
討論區列表 >> VB.NET >> 在GridView的指定列點選修改按鈕後跳頁並將該列資料呈現在另一個頁面的TextBox中
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
在GridView的指定列點選修改按鈕後跳頁並將該列資料呈現在另一個頁面的TextBox中
價值 : 80 QP  點閱數:437 回應數:15
樓主

Wiz
門外漢
0 9
183 31
發送站內信

各位前輩好,
我的疑問如題目所述,
我的GridView大概長這樣

我用Response.Redirect在RowCommand事件中寫了一個按下修改會跳頁的事件



而我希望的是可以抓我按的那筆資料的第一個欄位的值(資料庫欄位NID,DataField已經設好)把它呈現到網址列上
再用QueryString的方式抓下來
大約7月初的時候有寫過一次,但幾個月沒碰過又忘記當初怎麼寫的了@@
但有幾段當初的程式碼然後在資料欄位名稱的部分改成了現在要用的






搜尋相關Tags的文章: [ QueryString ] , [ VB.NET ] , [ GridView ] , [ RowCommand ] ,
本篇文章發表於2019-12-23 16:22
1樓
作者回應

Wiz
檢舉此回應
剛剛發現ImageShack要我付費升級,看似不能免費使用了所以把圖片放到雲端硬碟,但似乎不能用PNG檔,
所以在這裡再傳一次GridView的圖

本篇文章回覆於2019-12-23 17:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Wiz
檢舉此回應
本篇文章回覆於2019-12-23 17:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Wiz
檢舉此回應
本篇文章回覆於2019-12-23 17:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Wiz
檢舉此回應
試了好幾次都不行...
總之就是大概13個欄位
第一個欄位的Visible是False所以不會顯示出來
最後兩個欄位是修改和刪除按鈕
但我是用BoundField、ButtonType = "Button"用出這兩個按鈕的,
不是像很多網路上的範例直接用Template Mode((不知道是不是叫這個)) 叫出編輯刪除按鈕
本篇文章回覆於2019-12-23 17:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

MIS2000 Lab
檢舉此回應
不知道您是不是私下來信跟我討論的那一位?
因為問題很類似,我把我的回答也PO出來 --
.................................................
您似乎想在「同一頁」裡面做到
兩個Gridview彼此傳值

(1) 如果資料表彼此有關連,或許....不用寫程式就能做到
書本上集第九章,只靠 SqlDataSource的「Where」按鈕

(2) 如果要動手做(寫程式),可以透過 Session or ViewState
書本上集第十六章

上一封信的範例比較難,那是「不同網頁」的傳值
您在 「同一頁」裡面互動,簡單很多

我比較擔心您目前的程度,不知道是深是淺?
要抓到 Gridview身體裡面「子控制項(例如TextBox)」的數值
需要學到 .FindControl()方法

請參考書本上集第十章
謝謝您

.................................................
如果您的兩個 Gridview分別在兩個「不同的頁面」上
您要做「跨網頁張貼 (Cross-Page Posting)」
可以參考我書本上集,第十五章的作法

當然,也可以用URL傳值的方式來做
兩種作法應該都可以

印象中我有寫過這個範例
https://dotblogs.com.tw/mis2000lab/archive/2013/10/15/gridview_crosspage_posting_edit_update.aspx

謝謝您
.................................................

這個問題應該發佈在ASP.NET版,比較能找到幫助您的人
本篇文章回覆於2019-12-23 20:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Wiz
檢舉此回應
謝謝前輩!但我不是那位私訊您討論的人~
我可能對我自己的問題描述沒有很清楚
我是要在主要頁面的GridView按修改後跳到另一個分頁
在另一個分頁的Table表單上的各個TextBox控制項呈現"我在上一個分頁的GridView按的那列(ROW)"的資料這樣,
印象中之前寫的是用URL傳值後抓資料表索引來秀出那筆資料中全部的資料

而我目前的程度應該還算很淺,
很多基本的觀念可能還沒有完全融會貫通,
但礙於工作上沒辦法慢慢等我去學完全部的基礎,
只好邊做邊了解了,所以有問題的地方,不管是觀念還是技術都歡迎批評指教,謝謝前輩給予指導!
本篇文章回覆於2019-12-24 08:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Wiz
檢舉此回應
謝謝前輩!但我不是私訊您的那位~
由於圖片沒有顯示成功的關係,
所以可能對於我的問題沒有描述得很清楚,
我是要在不同的分頁進行,
主要的分頁有GridView,每一列最後面兩個欄位都有修改作廢,
而我是想要在按了某列的修改後,將這列資料的索引值傳到URL上,
跳到另一個分頁,在這個分頁將URL中的索引值抓下來,
然後用這個索引值來顯示出這列資料中全部的資料,
呈現在另一個分頁中的TextBox控制項上,
而另一個分頁中沒有GridView,只有Table表單和TextBox跟按鈕(確定修改跟取消返回)這樣

程度方面我自認為我還很淺,
剛接觸VB.NET快三個月,
有很努力在找基本觀念類的文章跟書來學習,
但成效還沒那麼顯著,
謝謝前輩指導!!
本篇文章回覆於2019-12-24 08:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Wiz
檢舉此回應
.... 剛剛按送出的時候顯示說我上篇訊息傳太快所以沒成功,
結果在回一次後前一個沒成功的的又出現了.. 鬼打牆
本篇文章回覆於2019-12-24 08:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

Wiz
檢舉此回應
忘記回到為甚麼沒PO在ASP.NET的原因,
因為我是用VB.NET寫的(aspx.vb),
對於ASP.NET語法和VB.NET語法之間的轉換還不太OK,
所以就直接發在VB了
本篇文章回覆於2019-12-24 08:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
最有價值解答

MIS2000 Lab
檢舉此回應
依照您目前的需求



您這個需求很簡單
以ASP.NET WebForm來說,完全不用寫程式就能做到了

以大型控制項(如GridView)為例,就有hyperLinkField
搭配 SqlDataSource的「Where」按鈕就能做到

大部分的入門書都會介紹這個功能
或是找一下我的書本(ASP.NET專題實務(I))第十章。

不用寫程式,設定一下就能完成
希望有幫上忙 :-)



本篇文章回覆於2019-12-24 09:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Wiz
檢舉此回應
謝謝前輩!
但如果今天我連資料庫利是用寫程式碼來做連線傳值與離線,
而且因為公司使用的是.NET 2.0,
所以會有一些新功能語法不相容,
在這樣的情況下,還可以再使用SqlDataSource去做連線嗎?

還有大大指的參考您的書,
是有在您的網站上提供免費觀看嗎?
還是是指說可以去書店之類的店面找來購買觀看呢
(雖然我覺得是後者)
因為是目前正在處理的所以去店面找書可能會比較困難
但如果之後有空會去參考支持的!!
謝謝回覆~



本篇文章回覆於2019-12-24 11:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
所以...你現在的問題點卡在哪?
是Response.Redirect("WHU.aspx?entry=" & GridView1.Rows(i).Cells(0).Text)捉不到?
還是TextBox給值有問題?

若NID有設在GridView的datakeynames
建議用GridView1.DataKeys[i].Value.ToString()來捉會比較簡單
本篇文章回覆於2019-12-27 09:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
沒注意到「已解」,請忽略。
本篇文章回覆於2019-12-27 09:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

MIS2000 Lab
檢舉此回應
SqlDataSource / GridView這些控制項,都是 .NET 2.0( VS 2005)面市的
功能至今沒有太大改變,
尤其您用的只是基本功能而已,不用擔心版本問題
以前 ASP.NET 2.0/3.5/4.0....的書也都有講

能自己100%寫程式作出來,當然是最好,代表自己有實作能力。

如果只是一些簡單的功能,能透過 GridView這種大型控制項搭配SqlDataSource精靈,
兩分鐘就設定完成,也很便捷

基礎的CRUD都要自己慢慢刻鋼板、慢慢寫,是有點辛苦
就連MVC(沒有Web控制項)都會幫你產生CRUD基本表單了 :-)
本篇文章回覆於2019-12-27 09:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

Wiz
檢舉此回應
回應老頑童前輩,
我後來改了一個方式去寫,
資料放到GridView後直接抓GridView的欄位值給TextBox並且改成全部都在同一個頁面做
再用Panel的Visible去控制
所以本來的問題算是還沒解決

我是
Response.Redirect("WHU.aspx?entry=" & GridView1.Rows(i).Cells(0).Text)
後面的GridView1.Rows(i).Cells(0).Text
抓不到值
可是確定把資料丟到DataTable並用Rows.Count卻有筆數
但用 DataTable.Rows(i).item("欄位名稱")
會顯示錯誤"位置0沒有資料列"(我是按第一筆資料的修改按鈕所以index是0)
本篇文章回覆於2019-12-27 09:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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