動態產生控制項(Controls),相信有學過的人都知道,非常簡單,只要宣告一個新的控制項,再把它加入某個 Container 就行了:

Dim mybox As New CheckBox
PlaceHolder1.Controls.Add(Cbox)

以我的例子來說,我想要動態產生 HTML Table,並放入許多個相對應的 Web Control,而 Table 的欄位數(Column)及列數(Row)是不定的,DataGrid 或 DataList 固然好用,欄位卻無法任意隨著取得的「查詢(Query)結果」而變動數量,此例中欄位是由查詢結果產生,隨時會變動個數,又同時會連動影響到 Control 的個數。

若另外要用HTML語法與 Placeholder 裡的 Control搭配,按照直覺式的方法,某個 Literal(or Label)會是預備輸出的 HTML,但我們想要的控制項因為放置在 PlaceHolder 中,而無法任意在其前後加入HTML語法,而導致「整段的 HTML 」是置放於你的 PlaceHolder 之前或之後,而使得 Control 和 HTML 是分開的。

以下的作法可以完美的結合 HTML 和 Controls,達成小小的夢想(任何 HTML與Web Controls 的組合):

PlaceHolder1.Controls.Add(New LiteralControl(HTMLstring)) 'ex:
PlaceHolder1.Controls.Add(mybox)
PlaceHolder1.Controls.Add(New LiteralControl(HTMLstring)) 'ex:

在動態加入控制項的前後,先將 HTML 加入 PlaceHolder 即可達成。














-----

kenlai 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • 小楊
  • 感謝好文, 借引用至小弟blog紀錄...謝謝