2011-08-20 109 views
1

我試圖給用戶控件添加到佔位動態添加用戶控件的頁面。我將用戶控件放置在列表項<li> userControl </li>中,然後將列表項放入無序列表<ul><li>用戶控件</li></ul>中,然後將無序列表添加到佔位符phMain.Controls.Add(myUnorderedList)。 ..代碼如下:使用佔位

var myListItem = new HtmlGenericControl("li"); 
var preview = new UserControls_ChiotsPreview(); 
preview = (UserControls_ChiotsPreview)LoadControl(typeof(UserControls_ChiotsPreview), null); 
myListItem.Controls.Add(preview); 
myUnorderedList.Controls.Add(myListItem); 
placeholderMain.Controls.Add(myUnorderedList); 

回答

0

我想通了,這是我在其中加載網頁上的控制,並要求這引起了我的控制有NULL值的構造邏輯順序。

var myUnorderedList = new HtmlGenericControl("ul"); 
myUnorderedList.Attributes["class"] = "resultClass"; 
var counter = 0; 

foreach (var chiot in chiots) 
{ 
//create list item, can I put the user control inside of here? why not? 
var myListItem = new HtmlGenericControl("li"); 

//add user control to li 
var preview = (UserControls_ChiotsPreview)LoadControl("~/UserControls/ChiotsPreview.ascx"); 
preview.Name = chiot.Name; 
preview.MainPhoto = chiot.MainImage; 
preview.Breed = chiot.Breed; 
preview.ChampionSireDam = ResolveImage(chiot.ChampionSireDam); 
preview.ChampionBloodline = ResolveImage(chiot.ChampionBloodline); 
preview.Price = chiot.Price; 
preview.Details = chiot.Description; 

myListItem.Controls.Add(preview); 

//add li to ul 
myUnorderedList.Controls.Add(myListItem); 

//max column = 5 
counter += 1; 

//maximum 5 columns 
if (counter == 5 || chiots.Count == counter) 
{ 
try 
{ 
phMain.Controls.Add(myUnorderedList); 
+0

如果Page.LoadControl方法能夠訪問用戶控件的構造函數值,那將會很好。 – AnxiousdeV

+0

我只是碰到這種在搜索出來......你知道,在你原來的職位,你所使用的過載'Page.LoadControl'在'(UserControls_ChiotsPreview)LoadControl(typeof運算(UserControls_ChiotsPreview),空)' - 那就是你有'null'那裏,你可以發送一個'對象[]'與對象「比賽的數量,順序和構造函數的參數類型來調用」,即你的控制的構造。 – kaveman