动态控制事件 [英] Dynamic Controls events

查看:57
本文介绍了动态控制事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经添加了按钮,其他一些是动态的,如下所示:



我想要按钮的事件。目前它给我错误多个控件具有相同的ID'xx'找到了..所以如何处理这种情况...假设我只创建了一个按钮,那么它的事件将成功地为handel。多个按钮出现问题...



for(int i = 0; i< dt1.Rows.Count-3; i ++)

{

pnlTextBox = new Panel();

pnlTextBox.ID =pnlTextBox+ i.ToString();

pnlTextBox。 CssClass =tagpanel;





TextBox txt = new TextBox();

txt.ID = (i + 1).ToString();

txt.CssClass =txtb;

txt.Text = dt1.Rows [i] [3] .ToString( );

txt.Enabled = false;

txt.AutoPostBack = true;



ImageButton img = new ImageButton();

img.ID =img_+ i.ToString();

img.Click + = new ImageClickEventHandler(img_Click);



img.ImageUrl =〜/ images / TagClose.png;

img.CssClass =icons;

< br $> b $ b

Button Btn = new Button();

Btn.ID =Btn_+ i.ToString();

Btn.Text =Save;

Btn.CssClass =btnCss;

Btn.Click + = new EventHandler(Btn_test);



Literal ltbr1 = new Literal();

ltbr1.Text =
;



Literal ltbr = new Literal();

ltbr.Text =
;



标签lbl =新标签();

lbl.ID = i.ToString();

lbl.CssClass =lblCss;

lbl.Text = dt1.Rows [i] [0] .ToString(); < br $>




pnlTextBox.Controls.Add(txt);

pnlTextBox.Controls.Add(img);

pnlTextBox.Controls.Add(ltbr1);

pnlTextBox.Controls.Add(lbl);

}

I have added buttons and some others conrols dynamically as follows:

I want to handel events of button. Currently it gives me the error "Multiple Controls with same ID 'xx' found"..So how to deals with this situation...suppose i have create only one button then its event will be handel successfully. Problems occurs with multiple buttons...

for (int i = 0; i < dt1.Rows.Count-3; i++)
{
pnlTextBox = new Panel();
pnlTextBox.ID = "pnlTextBox" + i.ToString();
pnlTextBox.CssClass = "tagpanel";


TextBox txt = new TextBox();
txt.ID = (i + 1).ToString();
txt.CssClass = "txtb";
txt.Text = dt1.Rows[i][3].ToString();
txt.Enabled = false;
txt.AutoPostBack = true;

ImageButton img = new ImageButton();
img.ID = "img_" + i.ToString();
img.Click += new ImageClickEventHandler(img_Click);

img.ImageUrl = "~/images/TagClose.png";
img.CssClass = "icons";


Button Btn = new Button();
Btn.ID = "Btn_" + i.ToString();
Btn.Text = "Save";
Btn.CssClass = "btnCss";
Btn.Click += new EventHandler(Btn_test);

Literal ltbr1 = new Literal();
ltbr1.Text = "
";

Literal ltbr = new Literal();
ltbr.Text = "
";

Label lbl = new Label();
lbl.ID = i.ToString();
lbl.CssClass = "lblCss";
lbl.Text = dt1.Rows[i][0].ToString();


pnlTextBox.Controls.Add(txt);
pnlTextBox.Controls.Add(img);
pnlTextBox.Controls.Add(ltbr1);
pnlTextBox.Controls.Add(lbl);
}

推荐答案

看来你已经定了将文本框ID转换为i + 1并将控件标记为i。在第二次传递后你将有txt.ID = 1和lbl.ID = 1.在前面添加一个前缀,就像你正在使用按钮控件一样。



如果这有帮助,请花时间接受解决方案。谢谢。
It seems you're setting Textbox IDs to i+1 and label controls to i. After second pass you'll have txt.ID = 1 and lbl.ID = 1. Add a prefix in front like you're doing with the button control.

If this helps please take time to accept the solution. Thank you.


这篇关于动态控制事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆