台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
2013
 
會員總數:197934
接案會員:6196
文章總數:2320
討論主題:151331
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 如何在A.aspx取得B.ascx裡面的事件發生的值?

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何在A.aspx取得B.ascx裡面的事件發生的值?
價值 : 40 QP  點閱數:1545 回應數:5

點圖分享到Plurk吧!
樓主

ianan
初學者
55 14
333 40
想請問一下,我在一個A.aspx檔裡面拉了ㄧ個B.ascx控制項
B.ascx裡面寫的是ㄧ個treeview,
現在碰到一個難題,
我在B.ascx裡面的TreeView1_SelectedNodeChanged1(object sender, EventArgs e)事件裡面
取得被點選的node value跟他的text,
可是要如何在A.aspx裡面取得node value跟text?
可以的話不用session或是cookie.

我本來在B.ascx裡面寫了property去get,set屬性,
想說在A.aspx的page_load裡面,new一個B.ascx
再用property去get,
可是再我點選tree的某個節點後
B.ascx可以取得node value 跟 text的值,
但ㄧ跳到A.aspx,卻又變null,
我想說可能是因為是在A.aspx的page_load裡面new一個B.ascx
每次都new一個新的,所以他不可能抓到,
現在一整個苦惱中..不知道有沒有大大可以幫解

本篇文章發表於2008-02-24 20:54
VP、EP、QP、HP該如何使用? 2010年藍色小舖認證專家風雲榜完全名單
1樓
回應

Allen
高級顧問
61974 325
19970 15168

捐贈 VP 給 Allen 檢舉此回應
您可以為b.ascx設計一個事件, 由page去訂閱它,那麼b.ascx觸發事件時,page就可以處理它
若您要runtime才建立b.ascx,就在page init event裡加入這uc,事件就抓得到了


本篇文章回覆於2008-02-24 22:14
=========================================
網站 : http://www.allenkuo.com/
2樓
作者回應

ianan
初學者
55 14
333 40
檢舉此回應
Allen前輩,如果我是想在ascx那個treeview的點選事件裡面取得值,
再傳回aspx
還是要寫自訂事件嗎@@?


本篇文章回覆於2008-02-25 09:13
3樓
回應

R!cky
初級專家
1564 84
2544 913
捐贈 VP 給 我不會寫程式 檢舉此回應
HI~

您這問題我有問過!
我想可以用兩種方式,一種是網址帶參數去送
ASPX頁面就接收Request.Querystring

或者用Event去傳值
在uc建立一個event然後ASPX頁面做接收的動作
這是我當初try出來的,參考一下!
http://www.rd.idv.tw/View.aspx?ID=365




本篇文章回覆於2008-02-25 09:32
4樓
最有價值解答

Allen
高級顧問
61974 325
19970 15168

捐贈 VP 給 Allen 檢舉此回應
在uc自訂事件,是比較好啦
您也可以試著在uc裡,將tree宣告成public,那麼在page裡就可以取用它,例如
page_load(){
ucB.tree1.OnSelectedNodeChanged +=...... //這只是示意的寫法
}


本篇文章回覆於2008-02-25 09:35
=========================================
網站 : http://www.allenkuo.com/
5樓
作者回應

ianan
初學者
55 14
333 40
檢舉此回應
謝謝兩位大大~
後來因為時間的關係所以我換了寫法,
就是直接把tree放到aspx,不用usercontrol了,
try很久,今天要做完Orz,所以只好放棄QQ..
不過之後還是會trytry看使用usercontrol的寫法,
以下是我在母頁的code,我用一個button在onclick時去呼叫classChoose(),


然後在子頁面的codebehind的TreeView1_SelectedNodeChanged事件寫如下
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string sScript;
string sTextBoxN;
string sTextBoxID;
//取得要輸入日期的 TextBox
sTextBoxN = this.Request.QueryString["txtn"];
sTextBoxID = this.Request.QueryString["hdid"];
//將日期設給 TextBox,並將視窗關閉
sScript = "opener.window.document.getElementById('" + sTextBoxN + "').value='" + TreeView1.SelectedNode.Text + "';";
sScript += " opener.window.document.getElementById('" + sTextBoxID + "').value='" + TreeView1.SelectedNode.Value + "';";
sScript = sScript + "window.close();";
this.ClientScript.RegisterStartupScript(this.GetType(), "", sScript, true);
}



本篇文章回覆於2008-02-25 23:19
[變換順序]
1
 

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