經過測試System.Web.UI.HtmlControls
#下的HtmlForm
類別,也就是我們在傳統的asp.net中使用的Form表單對象,不適合動態產生Html程式碼。
於是自訂了一個簡單的HtmlForm
容器控件,只需要幾行程式碼。看來Asp.net在封裝Html元素方面還是很有優勢的,微軟為我們定義了大量的基礎結構,很容易擴展使用。
public class myHtmlForm:HtmlContainerControl { public myHtmlForm(): base("form") { this.Attributes.Add("method", "post"); } public string Action { set { Attributes.Add("action", value); } } }
使用很簡單,直接new,然後在Controls集合中加入控制項即可。
myHtmlForm form = new myHtmlForm(); form.ID = "myform"; form.Action = "test.aspx"; HtmlInputHidden hidf= new HtmlInputHidden(); hidf.ID = hidf.Name = "hidden"; form.Controls.Add(hidf);
最後在View中,輸出HTML程式碼到回應流。
form.RendControl(Writer);
結論:
動態產生HTML表單就是這麼簡單了。我以前可是自己拼接過HTML,然後Write啊。善於利用框架提供的類別可以有效的提高開放效率,並且使程式碼的可讀性良好。尤其是在做表格控制項時,善用System.Web.UI.WebControls.Table
控件,會很有幫助。
以上是動態產生HTML表單的asp.net方法程式碼範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!