Получение данных с нажатого контрола в модуле DotNetNuke
От: Vir7  
Дата: 26.10.10 18:45
Оценка:
Создаю модуль 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 срабатывают другие кнопки...
Если делать через сессии,то не получается сохранить свойства нажатой ранее кнопки.
dotnetnuke module asp.net dynamic controls
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.