2

我還沒有看到這個在ASP.NET之前實施,但正在考慮一個UI,將外觀和行爲像這樣:動態創建ASP.NET usercontrols的許多實例:如何創建它,以及我的衝突在哪裏?

概念概述

  • 一個TabControl加載和第一選項卡包含一個網格
  • 當行雙擊,一個新的標籤與
  • 標籤/記錄詳細的內容由用戶控件創建的記錄詳細信息創建
  • 多個標籤頁,可以創建和用戶控件的,因此很多情況下,將創建

我知道ASP.NET將重命名我的(runat="server")ID的我,我可以使用jQuery或ASP.NET服務器 - 端代碼與ID的工作......我的擔心是:

  • 如何請問ASP.NET來生成我的用戶的每個第N個實例一個唯一的ID(在佔位符渲染)
  • 我如何實際創建控件的額外實例?
  • 我還需要記住什麼?

因爲我不想回傳,所以我正在考慮將我的實現從ComponentArt的Callback Control開始,並使用ASP.net usercontrols來實現此效果。這將允許我執行大部分需要回發的事情,但不會刷新頁面上的所有元素......只是包含用戶控件的部分。這就是說,我沒有被綁定到特定的實現。

+0

順便說一句,如果你使用.NET 4.0,您可以設置'ClientIdMode'到'Static'所以控制將具有相同的ID,因爲它在標記。請參閱[MSDN](http://msdn.microsoft.com/zh-cn/library/system.web.ui.control.clientidmode.aspx) – abatishchev 2010-08-06 11:45:05

+0

我幾乎沒有抓到.NET 4的表面......感謝小費!此外,我將從現在開始修復我的ASP.NET外殼;) – LamonteCristo 2010-08-06 11:47:41

回答

1

你應該看看Page.LoadControl方法。它很好地工作,據我記得你在你的頁面上放置佔位符並將控件加載到PlaceHolders中,這就是你控制ID的方式。

這種方法不能很好地解決的一個問題是,當您的控件引發Page對象必須處理的事件時。如果您的控件是獨立的,但不應該有問題。

這可能會幫助你開始: http://www.codeproject.com/KB/aspnet/LoadingUSerControl.aspx