台灣最大程式設計社群網站
線上人數
1414
 
會員總數:245248
討論主題:189106
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> 請問當網頁中有使用 AJAX 元件傳值問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問當網頁中有使用 AJAX 元件傳值問題
價值 : 100 QP  點閱數:2806 回應數:4

樓主

劍子
門外漢
0 56
1632 92
發送站內信

不好意思請教各位
我有A.aspx 與 B.aspx 兩網頁
在A網頁中 使用

呼叫B網頁
在B網頁中使用AJAX CollapsiblePanelExtender元件可展開與收合Gridview
當在B網頁中按選定時

使用 ScriptManager.RegisterStartupScript(Me, Me.GetType, " ", script, True)
將字串回傳時都會出現

The TargetControlID of 'CollapsiblePanelExtender1' is not valid. The value cannot be null or empty.
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.InvalidOperationException: The TargetControlID of 'CollapsiblePanelExtender1' is not valid. The value cannot be null or empty.

原始程式錯誤:

在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

堆疊追蹤:


[InvalidOperationException: The TargetControlID of 'CollapsiblePanelExtender1' is not valid. The value cannot be null or empty.]
System.Web.UI.ExtenderControl.RegisterWithScriptManager() +290
System.Web.UI.ExtenderControl.OnPreRender(EventArgs e) +17
AjaxControlToolkit.ExtenderControlBase.OnPreRender(EventArgs e) in d:\E\AjaxControlToolkit\Release\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:391
System.Web.UI.Control.PreRenderRecursiveInternal() +77
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360

如不使用AJAX元件
改用ClientScript.RegisterStartupScript(Me.GetType, "", script, True)
將資料回傳是正常的
請問是哪裡錯誤
謝謝!!

本篇文章發表於2007-09-04 15:19
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

SOS995
捐贈 VP 給 SOS995 檢舉此回應
這是因為您在 ScriptManager.RegisterStartupScript(Me, Me.GetType, " ", script, True) 的
最後一個參數設為 True 造成的,請改為 False , 如下

ScriptManager.RegisterStartupScript(Me, Me.GetType, " ", script, False)

原因:
True => 會在 Javascript 程式的前後自動加上 <script ..> </script> 的標記,而您的語法中已有該標記,因此造成重複標記的錯誤。

希望可以解決您的疑惑!

MyBlog=>http://sos995.blogspot.com
本篇文章回覆於2007-09-04 16:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

劍子
檢舉此回應
不好意思問題還是一樣
再請問一下ScriptManager.RegisterStartupScript(Me, Me.GetType, " ", script, False) 中
script 代表是 script 字串
False 代表是 <script> </script> 標記
那 ME 代表的是? 本網頁嗎? 如果是那我要傳回上一張網頁要如何寫
那 Me.GetType 代表的是?
"" 又代表什麼

不好意思問題很多
本篇文章回覆於2007-09-04 17:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

小毅
捐贈 VP 給 neweclipse 檢舉此回應
是不是忘了在load事件設定
CollapsiblePanelExtender1的TargetControlID屬性 ?
本篇文章回覆於2007-09-04 17:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

劍子
檢舉此回應
好奇怪我在load事件中有設定
Me.CollapsiblePanelExtender1.TargetControlID = Me.Panel1.ClientID
看到小毅的回答在CollapsiblePanelExtender1的TargetControlID屬性在加入Panel1
就沒有出現錯誤訊息
謝謝小毅
我在試試

本篇文章回覆於2007-09-04 18:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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