2011-12-15 1 views
2

Я создал кнопку, которая должна просматривать сообщение в обновленной панели. Я динамически добавляю код, поскольку количество кнопок зависит от количества сообщений, которые они получают. Мне нужна кнопка для отображения метки. Есть идеи?Как создать метод для динамически добавленной кнопки. asp.net C#

Это мой код: Я чувствую, что проблема ограничена контуром. Я собирался изменить идентификатор, чтобы увеличить «lblbody» = 1 + = 1

$ while (reader.Read()) 
    { 

     string strrecipient, strsender, strsubject, strbody, strdate, strviewstate; 

     strdate = "Date Sent: " + reader["date"].ToString(); 
     strsender = "From: " + reader["sender"].ToString(); 
     strsubject = "Subject: " + reader["subject"].ToString(); 
     strbody = reader["body"].ToString(); 
     strrecipient = "To: " + reader["recipient"].ToString(); 
     if (reader["viewstate"].ToString() == "notread") 
     { 
      strviewstate = "UnRead"; 

     } 
     else 
     { 
      strviewstate = "read"; 

     } 
     string strName; 
     int intName; 
     intName = 0; 
     strName = intName.ToString(); 


     Panel pnlNewMess = new Panel(); 
     pnlMess.Controls.Add(pnlNewMess); 

     pnlNewMess.BorderColor = System.Drawing.Color.LightGray; 
     pnlNewMess.BorderStyle = BorderStyle.Solid; 
     pnlNewMess.BorderWidth = 1; 


     Label lbldate = new Label(); 
     Label lblsender = new Label(); 
     Label lblsubject = new Label(); 
     Label lblbody = new Label(); 
     Label lblrecipient = new Label(); 
     Label lblviewstate = new Label(); 
     Button btnView = new Button(); 



     lbldate.Text = strdate; 
     lblsender.Text = strsender; 
     lblsubject.Text = strsubject; 
     lblbody.Text = strbody; 
     lblrecipient.Text = strrecipient; 
     lblviewstate.Text = strviewstate; 
     btnView.Text = "View Message"; 
     btnView.ID = strsubject; 
     lblbody.Visible = false; 
     lblrecipient.Visible = false; 
     lblviewstate.Visible = false; 
     //lblbody.ID = "lblBody" + strName; 


     pnlNewMess.Controls.Add(lblrecipient); 
     pnlNewMess.Controls.Add(new LiteralControl("<br />")); 
     if (lblviewstate.Text == "notread") 
     { 
      pnlNewMess.Controls.Add(new LiteralControl("<div class='clsmess' style='background-image:url('images/unread.png'); color:white;'>")); 
     } 
     else 
     { 
      pnlNewMess.Controls.Add(new LiteralControl("<div class='clsmess' style='background-image:url('images/read.png'); color:white;'>")); 

     } 
     pnlNewMess.Controls.Add(lbldate); 
     pnlNewMess.Controls.Add(lblsubject); 
     pnlNewMess.Controls.Add(lblsender); 

     pnlNewMess.Controls.Add(btnView); 
     pnlNewMess.Controls.Add(new LiteralControl("</div>")); 
     pnlNewMess.Controls.Add(lblviewstate); 

     pnlNewMess.Controls.Add(new LiteralControl("<br />")); 
     pnlView.Controls.Add(lblbody); 

     pnlMess.Controls.Add(pnlNewMess); 





    } 

Единственное, что я попробовал было установить событие щелчка на кнопке с предметную lbl.text к глобальному variabe и затем щелчком другой кнопки будет сравнивать поле темы с базой данных и отображать lblbody.

btnview.text = lblsubject.text; 

SqlCommand CMretMess = new SqlCommand("SELECT body FROM [message] WHERE subject='" + clsGlobals.myGlobals.strSub + "'", connection); 
    lblBody.Text = CMretMess.ExecuteScalar().ToString(); 
    connection.Close(); 
+1

вы могли бы дать SSCCE (http://sscce.org/) и, пожалуйста, объясните, что вы пробовали, то, что не удалось, и что ваш ожидаемый результат –

+0

Вы пытаетесь добавить обработчик событий для кнопки, так что он делает что-то при нажатии? Если вы ищете серверную или клиентскую сторону? Или вы просто пытаетесь изменить текст/идентификатор кнопки, основываясь на сообщении, к которому оно относится? – Rozwel

+0

Да, это просто заставляет lblbody соотносятся с объектом, который пользователь щелкнул, чтобы быть видимым. Это, по сути, система сообщений. – Det

ответ

1

Не могли бы вы сделать что-то же просто, как это?

btnView.Click += (sender, e) => { 
    lblbody.Visible = true; 
}; 
+0

Я буду пытаться завтра. Благодарю. Единственная проблема заключается в назначении определенного значения для каждого сообщения. Поэтому, когда вы нажимаете кнопку, она принимает объект, с которым он связан, и отображает тело. Я мог бы использовать sql, я еще не совсем уверен. – Det

Смежные вопросы