通过面板中的动态图像按钮添加文本框

发布于 2024-09-30 03:58:48 字数 1604 浏览 8 评论 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,我可以添加一个文本框,在这种情况下,它可能不仅仅是一个文本框。

我希望这是清楚的,但出于某种原因,我不认为这是......抱歉。

I have a problem I seem to stumble over all the time, I have a Drop Down box and you can select a number which creates x number of textboxes with images buttons its for a survey it the image buttons are used to create "Sub-Answers" so they can have answers to answers so my question is I need to when they hit the image button to create a textbox under the orginal textbox here is the code.

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);
}

As you can see I just add controls to the panel, I need to know when that ImageBUtton is hit I can add a Textbox and in this case it could be more then just one textbox to it.

I hope this is clear but for some reason I dont think it is ... sorry.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦在夏天 2024-10-07 03:58:48

我添加了一个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;这似乎不起作用,或者其背后的代码都返回为 null:
HiddenField HFSubAnswers = new HiddenField();
HFSubAnswers.ID = "HiddenFieldSubAnswers" + i;
HFSubAnswers.Value = "0";

I have added a radwindow and poping that up sending the Data to the partent via javascript the which created a new problem for me, I can not in javascript seem to find the dynamicly created 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;
    }

The "document.getElementById(HiddenName).value = SubAnswerValues;" seems to never be found, I also tried $get(HiddenName).value = SubAnswerValues; that does not seem to work either both come back as null as for the code behind its:
HiddenField HFSubAnswers = new HiddenField();
HFSubAnswers.ID = "HiddenFieldSubAnswers" + i;
HFSubAnswers.Value = "0";

在巴黎塔顶看东京樱花 2024-10-07 03:58:48

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

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

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

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

有关更详细的解释,请转到此处

Im not sure if I got your question right but if you need to dynamically add controls on a Page here is what I can say.

Before adding your control I guess you need to find the control where you need to add it on, Add the control then assign the properties.

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

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

For a more detailed expalnation go here http://anyrest.wordpress.com/2010/04/06/dynamically-removing-controls-in-a-parent-page-from-a-child-control/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文