控制項學習二(保留Postback之後的值)

2022-02-12 06:41:18 字數 2491 閱讀 4661

三.保留postback之後的值

html

不會保留控制項的值

1.利用什麼機制保留?

session

?還是viewstate

?當我們使用

viewstate

儲存text

的值,當再次輸入內容,點

button

後,textbox

的值是以前

viewsate

而不是剛才輸入的值???

protected overrides sub render(byval output as system.web.ui.htmltextwriter)

dim renderdata as string

renderdata = ""

output.write(renderdata)

end sub

private sub mytextbox_load(byval sender as object, byval e as system.eventargs)handles mybase.load

ifme.page.ispostback = true then me.text = me.page.request.form(me.clientid)

end sub

end class

注意,上面黑體字。這段程式碼使得控制項在

postback

的時候,透過

request.from

機制,取得表單山

textbox

中的值,並且寫入屬性

text

中,如此一來,徹底解決了所有的問題。

無法保留

viewstate

中的資訊

有時我們把物件儲存到

viewstate

中,需要序列化。例如:

getreturn me

.viewstate

("conn") '回傳屬性

end get

set(byval value as sqlclient.sqlconnection)

me.viewstate

("conn") = value    '設定屬性

end set

end property

上面,檔程式執行到

me.viewstate ("conn") = value

會報錯。

我們可以使用

session

解決這一問題。

getreturn me.page.session(me.uniqueid & "_conn") '回傳屬性

end get

set(byval value as sqlclient.sqlconnection)

me.page.session(me.uniqueid & "_conn") = value    '設定屬性

end set

end property

有沒有發現使用

session

和使用viewstate

儲存物件的時候,程式寫法有點不同,我們比較一下:

me.page.session(me.uniqueid & "_conn") = value

ß這是使用

session

me.viewstate

("conn") = valueß這是

viewstate

差別在,使用

viewstate

的時候,沒有加上

page

,而是直接使用,上面的「

me」關鍵字,應為寫在控制項

class

裡面,所以代表是控制項的本身,因此,

me.viewstate

表示的是「控制項自己的

viewstate

」,而me.page.session

則是,「控制所屬網頁的

session

物件」。

因此,viewstate

不會有同名稱的問題,因為即使在一張網頁上,有多個該控制項的

instance

,每乙個

instance

都有各自的

viewstate

,但是,由於

sessin

物件是共用的,所以會有名稱重複的問題,因此,我們在

session

物件的使用上,特別用

[me.uniqueid&

」_conn」]

這個名稱取代【

conn

】,以避免當網頁上同時有多個該控制項的

instance

衝突,導致不同的控制項訪問到同樣的

session

變數,使得不同的控制項

instance

,屬性值變成一樣。

Ajax學習札記(二)Accordion控制項

accordion是第乙個控制項,言歸正傳,正式開始 一 accordion 是乙個可以讓你在你的 web 頁面方便地開發類似 outlook 工具欄的 asp.net ajax 控制項。它可以使得你的頁面使用者方便地展開或者關閉一系列頁面元素的顯示。它有點類似多個 collapsiblepanel...

PyQt5 隱藏控制項並保留位置

設定控制項的可見度為0 每種控制項都有3種設定可見度為0的方法,下面來拿按鈕的來舉例了。標準的隱藏 方法一 self.pushbutton 3.hide 方法二 self.pushbutton 3.sethidden true 方法三 self.pushbutton 3.setvisible fal...

js保留二位小數

js保留小數常用有三種方法,可根據實際情況選擇 方法一 使用tofixed保留兩位小數 自帶四捨五入與補位 var num1 55.3715 console.log num1.tofixed 2 結果55.37 方法二 用math.round四捨五入 var num1 parsefloat 55.7...