台灣最大程式設計社群網站
線上人數
678
 
會員總數:246046
討論主題:189631
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 加入 updatepanel focus 失效
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
加入 updatepanel focus 失效
價值 : 100 QP  點閱數:318 回應數:15
樓主

小裕
初學者
137 212
3310 398
發送站內信

目前遭遇一個問題是
我想要讓使用者輸入品號帶出相關資訊
然後自動跳一筆空的row,而focus要停在品號這個上
因為加入updatepanel 後就失效了
如果textchanged 每次postback 就正常
我應該朝那個方向做調整呢?


======================================================================








搜尋相關Tags的文章: [ updatapanel focus ] ,
本篇文章發表於2020-07-28 22:27
1樓
回應

想睡覺
檢舉此回應
可以從jquery 那邊下手看看
如果是多個品號 可以用$(this).focus
這樣不管選到哪一個輸入哪一個品號的欄位 就會focus 在該欄品號上
如有錯的話 請無視~
本篇文章回覆於2020-07-29 17:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

想睡覺
檢舉此回應
補充一下 請檢查頁面是否有刷新,如果有的話 就朝ajax吧
本篇文章回覆於2020-07-29 18:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小裕
檢舉此回應
畫面沒有刷新
本篇文章回覆於2020-07-30 15:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
這一篇參考看看

https://forums.asp.net/t/1791149.aspx?How+to+set+Focus+on+Control+inside+UpdatePanel

^.^a
本篇文章回覆於2020-07-30 16:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

小裕
檢舉此回應
我測試一下加入這段是可行的

UpdatePanel1.Update();
ScriptManager1.SetFocus("gv$ct110$item_no");

我用hfLastIndex來取得AddNewRow目前在第幾筆,
這樣我如何去找到AddNewRow後的第N筆的ID呢?


-----------------

本篇文章回覆於2020-07-30 17:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

小裕
檢舉此回應
ScriptManager1.SetFocus("gv$ctl" + string.Format("{0:00}", LastIndex + 2) + "$item_no");

我組成這段的結果會跟"gv$ct110$item_no"這段一樣
,但卻沒效果

結果我重新再執行一次

UpdatePanel1.Update();
ScriptManager1.SetFocus("gv$ct110$item_no");

卻也變不行了,
這是 updatapanel 導致的?

沒有 postback 我抓不到LastIndex ?
我拿掉updatapanel,是正常有值
所以我組那段就會沒效果?


本篇文章回覆於2020-07-30 22:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

MIS2000 Lab
檢舉此回應
我記得以前的MSDN文件(現改名為 Microsoft Docs)
有提過: UpdatePanel控制項跟 JavaScript之間 有某些不搭配的地方

現在找不到這一篇文章

但輸入關鍵字「UpdatePanel JavaScript」仍可找到很多中文範例與經驗談
希望對您有幫助
本篇文章回覆於2020-08-03 21:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
ScriptManager1.SetFocus()有兩種用法
一種是用【Client ID】,另一個是【控制項】

所以,如果可以取得你要的那個【控制項】,傳入【控制項】即可
因此,您先想方設法去取得您新增後要處理的控制項
例如:預先塞入【topcatNewRow】的內容
然後迴圈找TextBox的Text是【topcatNewRow】,這樣這個TextBox的NamingContainer就是那個Row了

找到後,再把他的Text設定為空字串,然後把該TextBox給ScriptManager1.SetFocus()

大概是這樣的想法
^.^a
本篇文章回覆於2020-08-04 09:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

小裕
檢舉此回應

我是繼上次幾個問題,
把他結在一起走到這裡,
我是希望可以focus 然後又可以離開textbox觸發,
現在是要加上ENTER跟tab也可以觸發,

後來我寫成這樣,可以執行正常跳到下一列,看起來很OK,
但真的很那悶放到平台就不會成功,
我是切成上下左右,右邊是顯示該頁的frame?
這樣會衝突?

照理講,如果不成功,我單隻執行應該也有問題才對,
真的不知道問題出在哪裡?

可以指引一個方向嗎?

=====================================









本篇文章回覆於2020-08-04 17:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
UpdatePanel簡單用好用的天使
但是搭配很多的Client端運作就是魔鬼了

小喵自己如果遇到這樣多的Client需求
就可能放棄WebForm,放棄UpdatePanel
改用WebAPI搭配Ajax撰寫SPA(Single Page Application)的方式
用Angular或Vue.js甚至單純jQuery來處理

^.^a
本篇文章回覆於2020-08-04 20:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
不錯的參考

想睡覺
檢舉此回應
大致上了解您的意思了
程式是越簡化越好,這樣往後要新增功能的話就會方便很多
UpdatePanel 很好用是沒錯, 但他還是有一些限制存在,畢竟 他是 asp.net 的產物
我剛開始學asp.net程式時 也是有使用了UpdatePanel 的元件過,但漸漸發現 不是很好控制 且執行上流量頗大(像購物系統) 後來 就都改用ajax 來做非同步資料更新及讀取
你的操作是比較趨向 Clinet端,這樣的話 以我的做法 我會捨棄掉UpdatePanel 而改用ajax 會來的方便許多
提供給你參考
本篇文章回覆於2020-08-06 16:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
不錯的參考

想睡覺
檢舉此回應
補充一下 當時寫的是VB.NET 語言 而當時寫的網站功能是線上印刷品~ 簡單來說 就是可以自行製作名信片 或是DM海報之類的(有多個樣版給客戶選擇) 然後有多個元件可 線上拖拉到你要的位置後
並可預覽 客戶拉完後的顯示畫面
且在同一個頁面可以產生多個樣版給客戶進行操作
當時我用的就是updatepanel 元件來控制,但我做到一半 整個放棄了~~~後來改用AJAX 後就如期上線完工!
這是我的經驗 分享給你
本篇文章回覆於2020-08-06 17:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

小裕
檢舉此回應
最近有看到jqgrid的套件,會花時間研究看看
我是用asp.net ,

這個套件前端介面很不錯,

前端與後端的連結透過xml或json來溝通,
但如果你還想透過這個grid 套件來做後端的事,感覺就很麻煩,

想請教先進,asp.net 與這套件如果要處理後端資料的事,
要如何去處理會好一些?
本篇文章回覆於2020-08-19 08:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
不懂您所謂的【如果要處理後端資料的事】是指什麼?
本篇文章回覆於2020-08-19 12:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
另外
有點離題了,是否另開討論?
^.^a
本篇文章回覆於2020-08-19 12:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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