动态按钮在动态事件中创建 [英] Dynamic Button Created inside a dynamic event
本文介绍了动态按钮在动态事件中创建的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我为它创建了一个动态按钮和点击事件。
该事件正在发挥作用。
问题是我在其中动态创建了一个按钮,其中有一个点击事件。
此事件未触发
Hi,
I have created a dynamic button and a click event for it.
That event is working.
The problem is that i have created 1 more button dynamically inside that , which has a click event.
This event is not triggering
//Method1
void ChatList()
{
DataTable dtNames = help.GetTable("select userid from tbluser where Login='1'");
for (int i = 0; i < dtNames.Rows.Count; i++)
{
HtmlGenericControl table = new HtmlGenericControl("table");
HtmlGenericControl tr = new HtmlGenericControl("tr");
HtmlGenericControl tdleft = new HtmlGenericControl("td");
HtmlGenericControl tdright = new HtmlGenericControl("td");
HtmlGenericControl light = new HtmlGenericControl("img");
light.Attributes.Add("src", "images/chaticon.png");
light.Attributes.Add("class", "loglight");
tdright.Controls.Add(light);
LinkButton names = new LinkButton();
names.Attributes.Add("class", "list");
names.Attributes.Add("style", "text-decoration:none;color:#8997ef;");
names.ID = dtNames.Rows[i].ItemArray[0].ToString();
names.Click += new EventHandler(ShowChat_Click);
names.Text = dtNames.Rows[i].ItemArray[0].ToString();
tdleft.Controls.Add(names);
tr.Controls.Add(tdleft);
tr.Controls.Add(tdright);
table.Controls.Add(tr);
// tr.Controls.Add(new LiteralControl(""));
plcChatList.Controls.Add(table);
}
}
//My first click event(WORKING)
public void ShowChat_Click(object sender, EventArgs e)
{
LinkButton names = new LinkButton();
names = sender as LinkButton;
string Id = names.ID;
Label1.Text = Id;
TextBox ChatBox = new TextBox();
ChatBox.ID = names.ID + "Txt";
HtmlGenericControl table = new HtmlGenericControl("table");
HtmlGenericControl tr = new HtmlGenericControl("tr");
HtmlGenericControl tdL = new HtmlGenericControl("td");
HtmlGenericControl tdR = new HtmlGenericControl("td");
HtmlGenericControl sendBtnImg = new HtmlGenericControl("img");
sendBtnImg.Attributes.Add("src", "images/sendbtn.png");
sendBtnImg.Attributes.Add("class", "sendbtn");
LinkButton Send = new LinkButton();
Send.ID = names.ID;
Send.Click += new EventHandler(ShowChatMsg_Click);
if (!Page.IsPostBack)
{
Send.Click += new EventHandler(ShowChatMsg_Click);
}
Send.Controls.Add(sendBtnImg);
tdL.Controls.Add(ChatBox);
tdR.Controls.Add(Send);
tr.Controls.Add(tdL);
tr.Controls.Add(tdR);
table.Controls.Add(tr);
plcChatWindow.Controls.Add(table);
}
//My second click event (NOT WORKING)
public void ShowChatMsg_Click(object sender, EventArgs e)
{
LinkButton Send = new LinkButton();
Send = sender as LinkButton;
string Id = Send.ID;
DataTable dt = help.GetTable("select text from message where userID='"+Id+"'");
Label lblText = new Label();
lblText.ID = Id + "chat";
Label2.Text = Id;
lblText.Text = dt.Rows[0].ItemArray[0].ToString();
plcAllChat.Controls.Add(lblText);
}
推荐答案
理想情况下,应在page_load事件中添加/注册事件处理程序。检查下面的示例代码。
Ideally, event handlers should be added/registered in page_load event. Check the below sample code.
Page_Load()
{
Button b = new Button();
b.ID = "btnMyButton";
b.Text = "some text";
b.Command += new CommandEventHandler(b_Command); //handler
}
>
这篇关于动态按钮在动态事件中创建的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文