2010-11-01 67 views
0

我有一個問題,我似乎總是絆倒,我有一個下拉框,您可以選擇一個數字,它創建x數量的文本框與圖像按鈕它的調查它圖像按鈕是用來創建「子答案」,所以他們可以有答案的答案,所以我的問題是我需要當他們擊中圖像按鈕來創建一個文本框下的原始文本框這裏是代碼。在面板中通過動態圖像按鈕添加文本框

for (Int32 i = 1; i <= NumberOfAnwsers; i++) 
{ 
Literal l1 = new Literal(); 
l1.Text = "<tr><td>Answer " + i + " text.</td><td>"; 

TextBox tb = new TextBox(); 
tb.ID = "TextBoxAnswer" + i; 
tb.EnableViewState = false; 
tb.Width = 300; 

Literal l3 = new Literal(); 
l3.Text = "</td><td>"; 

Literal l2 = new Literal(); 
l2.Text = "</td></tr>"; 

RadColorPicker CPI = new RadColorPicker(); 
CPI.PaletteModes = PaletteModes.WebPalette; 
CPI.ID = "RadColorPicker" + i; 
CPI.ShowIcon = true; 
CPI.SelectedColor = System.Drawing.Color.Black; 

ImageButton IBVideo = new ImageButton(); 
IBVideo.ID = "IBVideo" + i; 
IBVideo.ImageUrl = "/images/video-icon.jpg"; 
IBVideo.ToolTip = "Add Video"; 
IBVideo.Height = 20; 
IBVideo.Width = 20; 

ImageButton IBAdd = new ImageButton(); 
IBAdd.ID = "IBAdd" + i; 
IBAdd.ImageUrl = "/images/add-icon.png"; 
IBAdd.ToolTip = "Add Sub-Answers"; 
//IBAdd.OnClientClick = "showDialog(" + i + ");return false;"; 
IBAdd.Height = 20; 
IBAdd.Width = 20; 

//Add Textbox 

PanelAnswersToQuestions.Controls.Add(l1); 
PanelAnswersToQuestions.Controls.Add(tb); 
PanelAnswersToQuestions.Controls.Add(l3); 
PanelAnswersToQuestions.Controls.Add(CPI); 
PanelAnswersToQuestions.Controls.Add(IBVideo); 
PanelAnswersToQuestions.Controls.Add(IBAdd); 
PanelAnswersToQuestions.Controls.Add(l2); 
} 

正如你可以看到我剛剛控件添加到面板上,我需要知道什麼時候的ImageButton被擊中我可以添加一個文本框,在這種情況下,它可能是更多的則只是一個文本框它。

我希望這是明確的,但由於某種原因,我不認爲這是...對不起。

+0

您需要爲圖像按鈕訂閱事件處理程序,但是,您還需要留意或創建控件層次結構,並確保在每次發生任何事件處理後續的控制。總之,您需要確保所有項目都是在處理任何事件之前創建的。 – brumScouse 2010-11-01 20:50:08

回答

0

我不知道如果我得到你的問題是正確的,但如果你需要在頁面上動態地添加控件是我能說的。

在添加控件之前,我想您需要找到需要添加的控件,添加控件然後指定屬性。

PlaceHolder myPlaceHolder = (PlaceHolder)Page.FindControl("PlaceHolder1"); 

myPlaceHolder.Controls.Add(myButton); 
myButton.Text = "Hello World"; 

如需更詳細的expalnation去這裏http://anyrest.wordpress.com/2010/04/06/dynamically-removing-controls-in-a-parent-page-from-a-child-control/

+0

我改變了一些這個我現在只是將它添加到radwindow,我有一個Javascript的問題找到一個動態hiddenfield – user297378 2010-11-03 18:07:04

+0

我自己修復它謝謝! – user297378 2010-11-03 19:30:57

0

我添加了一個radwindow和坡平,最多發送數據到partent通過JavaScript它創造了一個新的問題,對我來說,我不能在javascript似乎找到動態地創建hiddenfield

function OnClientClose(radWindow) { 
     var oWnd = $find("<%=RadWindowAddSubAnswer.ClientID%>"); 
     var SubAnswerValues = oWnd.get_contentFrame().contentWindow.document.forms(0).HiddenFieldSubAnswers.value; 
     alert(SubAnswerValues); 
     var AnswerID = oWnd.get_contentFrame().contentWindow.document.forms(0).HiddenFieldAnswerID.value; 
     alert(AnswerID); 
     var HiddenName = "HiddenFieldSubAnswers" + AnswerID; 
     alert(HiddenName); 
     document.getElementById(HiddenName).value = SubAnswerValues; 
     $get("DivSubAnswers" + AnswerID).innerHTML = SubAnswerValues; 
    } 

的 「的document.getElementById(HiddenName)。價值= SubAnswerValues;」似乎永遠不會被發現,我也試過$ get(HiddenName).value = SubAnswerValues;這似乎不起作用,或者它們都返回爲null,而且它的後面的代碼爲空: HiddenField HFSubAnswers = new HiddenField(); HFSubAnswers.ID =「HiddenFieldSubAnswers」+ i; HFSubAnswers.Value =「0」;

相關問題