在動態建立的控制項中產生HTML、ASP 文字方塊和按鈕的任務可以是一個複雜的。幸運的是,您可以採取多種方法來實現此目的。
在您的範例中,您在程式碼中手動產生 HTML,然後動態建立文字方塊和使用控制項框架的按鈕。雖然此方法有效,但隨著產生的控制項數量的增加,它可能會變得乏味且容易出錯。
用於產生一系列類似的控制項,例如作為危險或區域的列表,建議使用 ListView 或 DataGrid。這些控制項提供了對資料綁定的內建支持,使您可以輕鬆地基於資料來源呈現控制項。
如果您對客戶端感到滿意- 端腳本,您可以使用 JavaScript 或 jQuery 動態建立和操作元素。這種方法消除了對伺服器端程式碼的需求,並允許更多的互動功能。
這裡有一個使用ListView 在動態建立的危險清單中產生危險清單的範例Areas:
private void CreateArea(int areaCount) { // ... existing code // Create a ListView for hazards ListView hazardList = new ListView(); hazardList.ID = "lvHazards" + areaCount; hazardList.DataSource = new string[] { "Hazard1", "Hazard2", "Hazard3" }; hazardList.DataBind += HazardList_DataBind; phHazard.Controls.Add(hazardList); } protected void HazardList_DataBind(object sender, ListViewDataBindEventArgs e) { ListView listView = (ListView)sender; foreach (string hazard in e.DataItem as string[]) { // Create a new DropDownList for the hazard DropDownList ddHazard = new DropDownList(); ddHazard.ID = "ddHazard" + hazard; ddHazard.Items.Add(new ListItem("Hazard1", "Hazard1")); // Create a new TextBox for the hazard description TextBox txtHazardDesc = new TextBox(); txtHazardDesc.ID = "txtHazardDesc" + hazard; // Add the controls to the current ListView item listView.Controls.Add(ddHazard); listView.Controls.Add(new LiteralControl(" ")); listView.Controls.Add(txtHazardDesc); listView.Controls.Add(new LiteralControl("<br />")); } }
此範例示範如何建立ListView 以顯示每個動態建立的區域內的危險清單。 ListView 的資料綁定在 HazardList_DataBind 事件處理程序中處理,其中動態建立控制項並將其新增至對應的 ListView 項目。
請記住,動態建立的控制項需要在每個頁面回發時重新建立以維護其狀態。考慮使用 ViewState 或快取機制來儲存與動態控制項關聯的數據,以防止它們遺失。
以上是如何在動態建立的 ASP.NET 控制項中有效率地建立 ASP.NET 控制項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!