Создаю модуль dnn, работающий с БД .На странице появляется n динамически созданных кнопок,у каждой есть свойства ID и Text. Как вытащить эти данные после нажатия одной из кнопок?
вот код :
private void StartStudent(object sender, EventArgs e)
{
this.Controls.Clear();
Label LabelFirstPage = new Label();
LabelFirstPage.Text = "Студент";
LabelFirstPage.Height = 50;
Controls.Add(LabelFirstPage);
LiteralControl lcon = new LiteralControl(@"<br>");
Controls.Add(lcon);
SqlConnectionStringBuilder sctb = new SqlConnectionStringBuilder();
DotNetNuke.Data.SqlDataProvider sdpro = new DotNetNuke.Data.SqlDataProvider(true);
String com = @"SELECT [SubjectID],[SubjectName] FROM [Subjects] WHERE [IsPassed] = 'False'";
SqlDataSource sds = new SqlDataSource(sdpro.ConnectionString, com);
GridView grv = new GridView();
grv.ID = "dataGrid";
grv.DataSource = sds;
grv.DataBind();
DataView datv = (DataView)sds.Select(DataSourceSelectArguments.Empty);
// Session["Value"] = "StudentToTests";
foreach (DataRow datr in datv.Table.Rows)
{
Object[] iar = datr.ItemArray;
Label lbl = new Label();
lbl.Text = Convert.ToString(iar[0] + ". ");
this.Controls.Add(lbl);
Button subj = new Button();
subj.Text = iar[1].ToString();
subj.ID = iar[0].ToString();
subj.Click += new EventHandler(this.StudentToTests_Click);
this.Controls.Add(subj);
LiteralControl litc = new LiteralControl(@"<br>");
this.Controls.Add(litc);
LiteralControl litc1 = new LiteralControl(@"<br>");
this.Controls.Add(litc1);
}
}
private void StudentToTests_Click(object sender, EventArgs e)
{
this.Controls.Clear();
string id = (sender as Button).ID;
LiteralControl lcon = new LiteralControl(@"<br>");
Controls.Add(lcon);
Label lbl = new Label();
lbl.Text = id;
this.Controls.Add(lbl);
}
Через сендер не работает,так как из-за постбэка, после нажатия StudentToTests_Click срабатывают другие кнопки...
Если делать через сессии,то не получается сохранить свойства нажатой ранее кнопки.