![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 Liny ![]()
![]() ![]() |
前情提要:Gridview中的Linkbutton.Text改變文字顏色 這次的目的: 因為我需要將原本頁面的三個值在滑鼠點擊後傳值到另一頁,再根據這三個值分別讀取另一個function去顯示資料庫裡的資料。 [color=Red]需求: 三個值都要透過HyperLink 新開視窗去傳值,並且都傳到同一頁;希望能在UserRoleData.aspx使用Request.Form["XXX"]接值後,再讀取function做處理, 但我現在卡在網址列不能顯示任何參數,但不帶參數有爬文看到可以Server.Transfer,但我的原頁面有套用MasterPage, 請問該如何做? 或是有其他非Server.Transfer的方法也可以! 附註:之所以不用hyperlinkfield,是因為原本頁面我需要有滑鼠遊標變成手指狀態,所以改成使用HyperLink 原本的頁面修改如下: .aspx .aspx.cs 欲傳值過去的頁面UserRoleData.aspx UserRoleData.aspx.cs
搜尋相關Tags的文章:
[ GridView ] , [ OnRowDataBound ] , [ HyperLink ] , [ Url ] , [ 參數 ] ,
本篇文章發表於2017-10-31 18:58
== 簽名檔 ==
學無止境! |
1樓 |
先把所謂的3個值,存到cookie
這樣子超連結就不必帶網址參數,讓另一頁直接抓cookie就好... (如果每個連結要帶的值都不一樣,那就得在點擊連結時,利用onclick先把指定的值寫進cookie) ============== 再不然就是在post的target以及action動手腳(依然要靠javascript動態去變更form的設定... 以你的情況來說難度可能還更高) 建議你描述一下【網址不能帶參數】的原因.... (怕被人手動亂改的話, 把參數加密就行了)
本篇文章回覆於2017-11-01 16:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
Liny ![]() ![]() |
網址不能帶參數,是練習作業需求....我在猜應該是跟資料庫安全有關!
請問如果用Session可以嗎? 但我在找Session資料時...又叫我把.aspx的HyperLink改成linkbutton,但這樣沒辦法另開新視窗! 卡在MasterPage又不能使用form method
本篇文章回覆於2017-11-01 18:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
Liny ![]() ![]() |
改寫如下:
但是傳送過去的頁面取不到值.... 原.aspx 原.aspx.cs UserRoleData.aspx code未改 UserRoleData.aspx.cs
本篇文章回覆於2017-11-01 20:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
先回答妳的問題,再問妳問題:
一、.aspx的HyperLink改成linkbutton,但這樣沒辦法另開新視窗! 有方法…google一堆解法。 二、您的session真的有抓到值嗎? 我猜是""…
本篇文章回覆於2017-11-02 17:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
Liny ![]() ![]() |
二、您的session真的有抓到值嗎? 我猜是""… 您真是厲害,偵錯過程都是""一路到另外一頁所以Session完全抓不到值
本篇文章回覆於2017-11-02 17:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
暈倒
妳犯了跟上一篇一樣的問題 一、妳的寫法: 妳的寫法在html會變成 但妳c#這樣只會抓到td,但妳td是沒有值的… 二、所以一樣要改成: 我寫個範例(妳一樣可以改成findcontrol) 抓取cells裡頭的controls 再試試看~
本篇文章回覆於2017-11-02 17:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓
作者回應
Liny ![]() ![]() |
我試著用Linkbutton並將其改寫在RowCommand裡,
但為什麼,Text比較短的文字...會抓不到值阿都是給空值! 有改過FindControl去抓、您教的Controls也用過,但好像少於10個英文字母的值...都不給抓 請問用在RowCommand和SelectedIndexChanged的差別在?
本篇文章回覆於2017-11-02 17:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓 |
Hi
再請教一下,妳有進入到「SelectedIndexChanged」的事件嗎? 因為我發現妳原本aspx的程式碼並未加上「CommandName="Select" 」
本篇文章回覆於2017-11-02 17:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
補上
可以參考這篇「http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD20080429154010U09.html」
本篇文章回覆於2017-11-02 17:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
作者回應
Liny ![]() ![]() |
回#8,有進去,我後來有找到類似的範例有加,但用SelectedIndexChanged事件,
在原本的.aspx click RoleName,只要文字短短的,所讀到的值都是""
本篇文章回覆於2017-11-02 18:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓 |
我試著用Linkbutton並將其改寫在RowCommand裡, 但為什麼,Text比較短的文字...會抓不到值阿都是給空值! 有改過FindControl去抓、您教的Controls也用過,但好像少於10個英文字母的值...都不給抓 ..不可能 你要不要再貼一次修改後的code呢? 我自己照你的方式做linkbutton hyperlink都是正常的
本篇文章回覆於2017-11-03 08:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
12樓
作者回應
Liny ![]() ![]() |
修改過程式如下
原畫面.aspx 原畫面.aspx.cs 接值UserRoleData.aspx 接值UserRoleData.aspx.cs
本篇文章回覆於2017-11-03 09:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
13樓 |
看起來很單純…我假設你的GridView中的Rolename,type,value都有顯示值好了。
你把這段改用FinControl的方式, 原本的方法要在偵錯debug下cmd比較容易知道問題所在。 改成findcontrol如下: 如果還是有問題,你先在debug中斷點,看看row.FindControl("RoleName"),有沒有找到 沒有就null,但null在" "報出來前就會error了 有的話,看一下 Text有沒有值
本篇文章回覆於2017-11-03 10:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
14樓
作者回應
Liny ![]() ![]() |
是為了更進一步抓對應每一行抓取值嗎? 另外可以回頭問個問題嗎?為什麼e.Row.Cells[i].Text,實際是讀到<td>阿?(覺得自己基礎觀念超差) 可是我之前做類似的RowDatabound時....都是靠e.Row.Cells[i].Text,對值做設計!
本篇文章回覆於2017-11-03 12:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
15樓 |
是為了更進一步抓對應每一行抓取值嗎? 另外可以回頭問個問題嗎?為什麼e.Row.Cells[i].Text,實際是讀到<td>阿?(覺得自己基礎觀念超差) 可是我之前做類似的RowDatabound時....都是靠e.Row.Cells[i].Text,對值做設計! 是的,但你的案例是抓控制項,而不是值 你的以前應該沒有用到cells中放控制項的情況。 一般單純的GridView,的確靠e.Row.Cells[i].Text取值。 但這次控制項是在cells中,有值的是控制項,而不是cells。 所以才要用controls的方式取值。
本篇文章回覆於2017-11-03 12:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |