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 我可以添加一个文本框,在这种情况下,它可能不仅仅是一个文本框。

我希望这很清楚,但出于某种原因,我认为这不是......对不起。

4

2 回答 2

0

我添加了一个 radwindow 并弹出它,通过 javascript 将数据发送给partent,这给我带来了一个新问题,我在 javascript 中似乎找不到动态创建的隐藏字段

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).value = SubAnswerValues;” 似乎永远找不到,我也试过 $get(HiddenName).value = SubAnswerValues; 这似乎不起作用,两者都返回为空,因为它背后的代码: HiddenField HFSubAnswers = new HiddenField(); HFSubAnswers.ID = "HiddenFieldSubAnswers" + i; HFSubAnswers.Value = "0";

于 2010-11-03T18:11:55.347 回答
0

我不确定我的问题是否正确,但是如果您需要在页面上动态添加控件,我可以说。

在添加控件之前,我想您需要找到需要添加它的控件,添加控件然后分配属性。

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

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

有关更详细的说明,请访问此处http://anyrest.wordpress.com/2010/04/06/dynamically-removing-controls-in-a-parent-page-from-a-child-control/

于 2010-11-01T21:18:46.077 回答