明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP.NET中根據(jù)XML動(dòng)態(tài)創(chuàng)建并使用WEB組件(3

[摘要]ASP.NET中根據(jù)XML動(dòng)態(tài)創(chuàng)建使用WEB組件(三)作者:厲鐵帥四、使用動(dòng)態(tài)創(chuàng)建的WEB組件 如果在動(dòng)態(tài)創(chuàng)建了WEB組件后,要使用該組件,可使用如下語句String sequencelabel...
ASP.NET中根據(jù)XML動(dòng)態(tài)創(chuàng)建使用WEB組件

(三)

作者:厲鐵帥

四、使用動(dòng)態(tài)創(chuàng)建的WEB組件

如果在動(dòng)態(tài)創(chuàng)建了WEB組件后,要使用該組件,可使用如下語句

String sequencelabelID="sequencedataTB"+icount.ToString();

Label sequencelabel=(Label)myPlaceHolder.FindControl(sequencelabelID);

Sequencelabel.Text=”… …”

… …















其中 sequencelabelID 為要使用的組件的ID號(hào),myPlaceHolder.FindControl()方法返回類型 Control 的對(duì)象,使用 (Label) 將該類型強(qiáng)制轉(zhuǎn)換為L(zhǎng)abel類型。然后你可以根據(jù)自己的需要來對(duì)此對(duì)象任何進(jìn)行你想進(jìn)行操作。如更改組件的屬性等等。

需要特別提起注意的是,使用上述語句來使用動(dòng)態(tài)創(chuàng)建的WEB組件有一個(gè)前提,就是頁面不能被刷新。如果頁面被刷新,而且你又沒有在頁面刷新后重新創(chuàng)建該組件。在程序中使用上述語句來使用動(dòng)態(tài)創(chuàng)建的WEB組件,在程序運(yùn)行時(shí)就會(huì)得到一個(gè)錯(cuò)誤。該錯(cuò)誤的產(chǎn)生是因?yàn)閯?dòng)態(tài)創(chuàng)建的WEB組件在頁面被刷新后就不存在了。在筆者的程序中就存在這樣的問題。因?yàn)楣P者的程序的思路是

1、讀取XML文件

2、根據(jù)讀取的信息動(dòng)態(tài)創(chuàng)建WEB組件,并為其文本屬性賦值

3、允許用戶對(duì)動(dòng)態(tài)創(chuàng)建WEB組件的文本屬性進(jìn)行修改。

4、當(dāng)用戶提交修改后,要將修改過的屬性寫入XML文件中

但是當(dāng)用戶提交修改后,頁面會(huì)被刷新。那么應(yīng)該如何得到修改過的屬性哪?

筆者在程序中采用了下面的方法:

private void summitButton_Click(object sender, System.EventArgs e)

{

… …

//將用戶填寫的測(cè)量點(diǎn)信息寫入數(shù)組

for(int icount=1;icount<=int.Parse(ViewState["totalnum"].ToString());icount++)

{

… …

string nameTBID="nameTB"+icount.ToString();

string nameTBtext=Request.Form[nameTBID].ToString();

namestr[icount]=nameTBtext;



}

… …

}

































其中nameTBID 為要使用的WEB組件的ID號(hào)。當(dāng)頁面刷新后,雖然動(dòng)態(tài)創(chuàng)建的WEB組件不存在了,但是Request 對(duì)象已經(jīng)將WEB組件的信息保存下來了,所以仍然可以獲得修改過的信息。

如果你想在頁面刷新后,仍然顯示動(dòng)態(tài)創(chuàng)建的WEB組件,那么你需要做的是在 Page_Load(object sender, System.EventArgs e) 中再次調(diào)用創(chuàng)建WEB組件的函數(shù),并用 Request.Form[ID] 為相應(yīng)的組件賦修改過的值。請(qǐng)記住,創(chuàng)建WEB組件的函數(shù)要放在 if(IsPostBack){ } 中。