2012-07-22 43 views
0
protected void lbChatFriend_Click(object sender, EventArgs e) 
     { 
      ChatDivContent.Visible = true; 
      System.Web.UI.HtmlControls.HtmlGenericControl createDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV"); 
      createDiv.ID = "div"; 
      createDiv.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Yellow"); 
      createDiv.Style.Add(HtmlTextWriterStyle.Position, "relative"); 
      createDiv.Style.Add(HtmlTextWriterStyle.Color, "Red"); 
      createDiv.Style.Add(HtmlTextWriterStyle.Height, "50px"); 
      createDiv.Style.Add(HtmlTextWriterStyle.Width, "50px"); 
      createDiv.InnerHtml = " I'm a div "; 
      string chatFriend = ((LinkButton)sender).Text; 
      createDiv.Attributes["title"] = chatFriend; 
      ChatDivContent.Controls.Add(createDiv); 
     } 
<div id="ChatDivContent"> 
    <DIV id="div" style="background-color:Yellow;position:relative;color:Red;height:50px;width:50px;" 
title="dinesh"> I'm a div </DIV></div> 

< ----這是我在每一個回傳輸出我不能多格控件添加到父DIV控制

Wnat我做錯了什麼?

+2

你不是在告訴我們會發生什麼,你沒有告訴我們發生了什麼事......這就是你做錯了;-) – freefaller 2012-07-22 11:21:58

+0

我的猜測是你正在添加這個'div'的點擊一些按鈕或鏈接,並且你期待它仍然在第二次點擊。您是否在第二次回發中再次創建* first * div,因爲服務器不會再自動添加它 – freefaller 2012-07-22 11:24:51

+0

是否每個父分區(在頁面上有多個父母)或多個父分區中只能有一個div? – 2012-07-22 11:24:52

回答

0

我假設你不是在回發時重新創建舊控件(例如當用戶點擊LinkButton時)。因此只顯示最近創建的div。

您必須在每次回發時重新創建所有動態創建的控件(最遲在加載事件中)。 您還必須確保它們獲得與以前相同的ID以觸發事件並保持ViewState。

如果您知道要創建的控件的數量(可以存儲在ViewState中),您可以通過將計數器變量附加到控件ID來派生ID。然後,您可以使用頁面的init事件中的正確標識重新創建它們。

Recommandable讀數:

或者你可以使用內建的像Repeater自動做到這一點的一個。您只需設置DataSource並致電DataBind()

Here是我對類似問題的一個答案。