委託--使用者控制項到普通頁面之間的傳值
使用者控制項在程式中我們經常用到,但是使用者控制項到普通頁面之間的傳值,卻很少用,在這裡要使用委託去實現
所謂委託,通俗的說就是代替別人去做事情,下面舉個例子就明白了!假如我要送個同事小王一箱水果,由於他家比較遠,就讓離他家比較近的小張幫我去送給他,那麼小張就是我委託的人。下面結合上面的例子看看在程式中如何通過委託去處理一下事件
使用者控制項:
現在我在default.aspx中使用了使用者控制項,而且我想在點選button的時候把文字框中的值傳到default.aspx的某乙個lable中,那麼這個時候就可以使用委託了,怎麼實現呢?
在這裡我們可以理解把使用者控制項看成是我,頁面default.aspx看成是小王,那麼就少個小張了,小張是誰呢,不錯,就是我們要定義使用的委託。
下面我們來描述一下小張,也就是定義乙個委託:
public delegate void onclick(object sender,sendmessage e);
也就說小張必須要有這個能力,上面就是定義他的這個能力的,任何人讓他做這樣的事情,都能夠完成。所以object sender就是代表傳遞的介質,也就是手,sendmessage e就是箱子。
為了能讓這個箱子在他們之間傳遞,在這裡我們要定義乙個箱子,也就是乙個類,然後在類裡定義一些變數,代表可以放到箱子裡的東西!具體的東西要看委託人想放上面東西在裡面了!
public class sendmessage:eventargs
set
}public sendmessage(string message)
}其次來看看我,首先我要把小張找過來,也就是在使用者控制項中宣告一下
public event onclick onclick;
然後當我用手把籃子交給他,也就是要觸發按鈕事件
protected void button2_click(object sender, eventargs e)
} 小張到了小王家之後,要把東西交給他,也就是在default.aspx中
protected void page_load(object sender, eventargs e)
void usercontrol1_onclick(object sender, sendmessage e)
如果直接傳遞使用者控制項中的值,按鈕在default.aspx這邊的話,就沒那麼麻煩了,直接在使用者控制項中定義乙個屬性,即要傳遞的值的屬性,然後再default.aspx中呼叫就可以了
上面講的就是委託,可以好好想想其中的原理!
使用者控制項(頁面與使用者控制項之間的資料訪問)12 12
前台如何新增使用者控制項!例 page指令下加入 register src cityselect.ascx tagname cityselect tagprefix uc1 在指定位置下加入 頁面上訪問使用者控制項中的資料 方法一 使用使用者控制項的findcontrol方法,找到使用者控制項中的控...
PostBackUrl 使用者控制項頁面傳值總結
postbackurl 使用者控制項頁面傳值總結 今天在除錯郵件傳送的時候,發現了get傳遞資料的最大值問題,檢視 了有關資料說get方式最大的傳遞值為2k 包括url字元 因此只能修改 換別的方式。本來計畫使用post方式,但是post方 式無法獲取使用者控制項中的資訊,所以此方法作罷。以下介紹使...
頁面之間傳值的方式
1.使用querystring方式 這種方式,我們可以將瀏覽器中位址列中的一些引數給取出來。比如說 string str request.querystring username tostring 2.使用session方式 session用於儲存每個使用者的專用資訊.她的生存期是使用者持續請求時間...