Tags:
c#
Hej
Jeg har problemer med at fange / oprette click events til knapper som er oprettet i CodeBehind.
Jeg har lavet følgende simple test som viser hvad jeg forsøger at opnå..
using System;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public TextBox txt;
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
TextBox txt = new TextBox() {
Text = "Text"+i
};
Panel1.Controls.Add(txt);
Button btn = new Button()
{
Text = "Button" + i
};
Panel1.Controls.Add(btn);
btn.Click += new EventHandler(btn_Click);
}
}
void btn_Click(object sender, EventArgs e)
{
Button clicked = (Button)sender;
Response.Write("You have clicked button " + clicked.Text);
Response.Write("Value of corresponding textbox ?? WHAT TO PUT HERE???? = ");
}
}
1 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
0
Fand en løsning som jeg kan leve med...
using System;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public TextBox txt;
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
TextBox txt = new TextBox() {
Text = "Text"+i,
ID = "txt"+i
};
Panel1.Controls.Add(txt);
txt = new TextBox()
{
Text = "sdfsdfsdf",
ID = "msg" + i
};
Panel1.Controls.Add(txt);
Button btn = new Button()
{
Text = "Button" + i,
CommandArgument = i.ToString()
};
Panel1.Controls.Add(btn);
btn.Command += new CommandEventHandler(btn_Command);
}
}
void btn_Command(object sender, CommandEventArgs e)
{
Button clicked = (Button)sender;
Response.Write("You have clicked button " + clicked.Text);
TextBox txt = (TextBox)FindControl("txt" + e.CommandArgument.ToString());
Response.Write("Value of textbox"+txt.Text);
txt = (TextBox)FindControl("msg" + e.CommandArgument.ToString());
Response.Write("Value of msg" + txt.Text);
}
}