亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于數據控件的數據通過手工綁定或通過數據源控件綁定的問題

關于數據控件的數據通過手工綁定或通過數據源控件綁定的問題

幕布斯6054654 2018-12-07 05:31:43
最近發現數據控件(我這里用Repeater)如果通過手工綁定一個數據源的話,如果回發時又一次綁定數據的話該數據控件里的服務器控件將不能保存其控件狀態,大致代碼如下:(Repeater控件內的TextBox1(TextBox1并沒有綁定數據,只是在Repeater控件內),用Label1來獲取回發后TextBox1的值)protected void Page_Load(object sender,EventArgs e){? ......這里省略了獲取數據的代碼? Repeater1.DataSource=...;? Repeater1.DataBind();}protected void Button1_Click(object sender,EventArgs e){? string str="";? foreach(RepeaterItem item in Repeater1.Items)? {? str+=((TextBox)item.FindControl("TextBox1")).Text; //獲取回發后TextBox1的值??? }? Label1.text=str;}得到的結果很明確,就是Repeater1控件內的TextBox1在網頁回發后,如果Repeater1在回發時綁定的話,TextBox1將不能保持其在回發前輸入的值,如果Repeater1在回發時不綁定的話,則TextBox1將能保持其在回發前輸入的值,即改成如下代碼:protected void Page_Load(object sender,EventArgs e){? if(!IsPostBack)? {? ......這里省略了獲取數據的代碼? Repeater1.DataSource=...;? Repeater1.DataBind();? }}protected void Button1_Click(object sender,EventArgs e){? string str="";? foreach(RepeaterItem item in Repeater1.Items)? {? str+=((TextBox)item.FindControl("TextBox1")).Text; //獲取回發后TextBox1的值??? }? Label1.text=str;}如果改成數據源控件提供數據的話,則TextBox1將能保持其在回發前輸入的值,也就是和第2種情況一樣。問題:第1種情況下的TextBox1并沒有綁定數據,為什么在Repeater1在回發時綁定數據后不能保存其自身的狀態(即不能保持其在回發前輸入的值)?數據源控件提供數據的情況下是在頁面生命周期的哪個階段為數據源控件提供數據的? 為什么這種情況下TextBox1將能保持其在回發前輸入的值? 難道默認情況下在回發時數據源控件將不為數據控件提供數據?
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 234 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號