Каждая кнопка ссылки извлекает на одну и ту же страницу, но каждая из них имеет разные данные из базы данных
я создаю буксирную веб-страницу, которая имеет динамический гребень для кнопки ссылки в ретрансляторе, и каждая кнопка ссылки ее имя основано на имени записи, хранящейся в имени столбца в базе данных, если новые данные вставляются в эту таблицу в базе данных на моей веб-странице динамически создается новая кнопка ссылки это имя, подобное имени, хранящемуся в базе данных
При нажатии на кнопку Ссылка я хочу получить всю информацию для этого имени
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Text; using System.Messaging; using System.Net; using System.Net.Mail; namespace exam { public partial class WebForm2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["seniorConnectionString"].ConnectionString); con.Open(); SqlCommand com = new SqlCommand("select*from dbo.[Suporvisor(commtiee)]", con); Page v = (Page)Context.Handler; SqlDataReader dr; dr = com.ExecuteReader(); if (dr.HasRows == true) { dr.Read(); Label1.Text = dr["S_name"].ToString(); Label7.Text = dr["SID"].ToString(); Label2.Text = dr["phone"].ToString(); Label3.Text = dr["E_mail"].ToString(); Label4.Text = dr["Department"].ToString(); Label6.Text = dr["Password"].ToString(); dr.Close(); } con.Close(); List<Label> labels = new List<Label>(); for(int i =0; i <= 6; i++) { Label label = new Label(); labels.Add(label); } con.Open(); com.ExecuteNonQuery(); SqlDataAdapter sda = new SqlDataAdapter(com); DataTable dt = new DataTable(); sda.Fill(dt); com.ExecuteNonQuery(); con.Close(); } private String button1WasClick = "false"; public static void SendEmail(String emailbody) { } protected void Button1_Click(object sender, EventArgs e) { using (MailMessage mailMessage = new MailMessage(ConfigurationManager.AppSettings["SMTPuser"],Label3.Text)) { mailMessage.Subject = Label1.Text; mailMessage.Body = "Hello amal you can log in the system This your ID:18819 username :amal"; using (SmtpClient smtp = new SmtpClient()) { smtp.EnableSsl = true; smtp.Host = ConfigurationManager.AppSettings["Host"]; smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnabelSSL"]); NetworkCredential networkCred = new NetworkCredential(ConfigurationManager.AppSettings["SMTPuser"], ConfigurationManager.AppSettings["SMTPpassword"]); smtp.UseDefaultCredentials = true; smtp.Credentials = networkCred; smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]); smtp.Send(mailMessage); ClientScript.RegisterStartupScript(GetType(), "alter", "alter(Email sent);", true); } } } private bool button2WasClick = false; protected void Button2_Click(object sender, EventArgs e) { button2WasClick = true; Response.Write("Email masseg is sent Succesfully"); using (MailMessage mailMessage = new MailMessage(ConfigurationManager.AppSettings["SMTPuser"], "monaxshroog@gamil.com")) { mailMessage.Subject = Label1.Text; mailMessage.Body = "Hello amal your request to be a suporvisor for senior project is not agread by Coordenator for mor daital :<br/>"; using (SmtpClient smtp = new SmtpClient()) { smtp.EnableSsl = true; smtp.Host = ConfigurationManager.AppSettings["Host"]; smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnabelSSL"]); NetworkCredential networkCred = new NetworkCredential(ConfigurationManager.AppSettings["SMTPuser"], ConfigurationManager.AppSettings["SMTPpassword"]); smtp.UseDefaultCredentials = true; smtp.Credentials = networkCred; smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]); smtp.Send(mailMessage); ClientScript.RegisterStartupScript(GetType(), "alter", "alter(Email sent);", true); } } } } }
Что я уже пробовал:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Configuration; namespace exam { public partial class RegistrationTransaction : System.Web.UI.Page { SqlConnection cnn = new SqlConnection(); protected void Page_Load(object sender, EventArgs e) { cnn.ConnectionString = ConfigurationManager.ConnectionStrings["seniorConnectionString"].ConnectionString; if (cnn.State == ConnectionState.Closed) { cnn.Open(); } SqlCommand cm = new SqlCommand("select S_name from dbo.[Suporvisor(commtiee)] ", cnn); cm.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(cm); DataSet dt = new DataSet(); da.Fill(dt); Repeater Repeater1 = new Repeater(); Repeater1.DataSource = dt; Repeater1.DataBind(); if (cnn.State == ConnectionState.Open) { cnn.Close(); } foreach (RepeaterItem repeatItem in Repeater1.Items) { // if condition to add HeaderTemplate Dynamically only Once if (repeatItem.ItemIndex == 0) { RepeaterItem headerItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Header); HtmlGenericControl hTag = new HtmlGenericControl("h4"); hTag.InnerHtml = "Suporvisor Rigestration Transaction"; repeatItem.Controls.Add(hTag); } // Add ItemTemplate DataItems Dynamically //SqlDataReader dr = Int32.Parse; RepeaterItem repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Item); LinkButton lnk = new LinkButton(); lnk.ID = "lnk_itemname"; lnk.Text = String.Format("{0}", (dt.Tables[0].Rows[repeatItem.ItemIndex]["S_name"])); lnk.Click += new EventHandler(click); HttpContext H = HttpContext.Current; String name = H.Request[lnk.Text]; repeatItem.Controls.Add(lnk); // Add SeparatorTemplate Dynamically repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Separator); LiteralControl ltrlHR = new LiteralControl(); ltrlHR.Text = "<hr />"; repeatItem.Controls.Add(ltrlHR); SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["seniorConnectionString"].ConnectionString); con.Open(); SqlCommand com = new SqlCommand("select*from dbo.[Suporvisor(commtiee)]", con); SqlDataReader dr; dr = com.ExecuteReader(); if (dr.HasRows == true) { while (dr.Read()) if (lnk.Text.Equals("S_name")) { Server.Transfer("~/SuporvisorRegistTran.aspx"); } Server.Transfer("~/SuporvisorRegistTran.aspx"); } } // Add Repeater Control as Child Control // of Panel Control Panel1.Controls.Add(Repeater1); PlaceHolder1.Controls.Add(Panel1); } protected void click (object sender , EventArgs e) { Response.Redirect("~/SuporvisorRegistTran.aspx"); } } }
Richard MacCutchan
Почему бы не использовать один из классов представления, который может динамически отображать нужные столбцы?
Member 14757261
Можете ли вы написать пример на моем коде
Richard MacCutchan
Взгляните на некоторые примеры по адресу codeproject:datagridview webform - поиск Google[^].
Member 14757261
Спасибо , я просто хочу посмотреть, что не так в моем коде
Richard MacCutchan
Непонятно, в чем ваша проблема. В вашем вопросе упоминается использование кнопок, но ваш код использует метки.
Member 14757261
Я имею в виду, что использую ретранслятор, который создает динамически ссылку-кнопку, что имя ссылки-кнопки-это значения, хранящиеся в столбце S-name в моей базе данных
При нажатии на ссылку-кнопку перенесите на страницу эту метку содержимого, которая имеет значение из базы данных . Я хочу проверить имя кнопки ссылки, если это именно то имя, а затем получить строки этого имени . Надеюсь, теперь все ясно
ZurdoDev
"Я хочу проверить имя кнопки ссылки, если это то самое имя, а затем получить строки этого имени . Надеюсь, теперь все ясно"
Для этого требуется оператор if. Где ты застрял?
Member 14757261
Я пытался это сделать но это не сработало
Можете ли вы показать мне, как и где писать, если заявление я имею в виду страницу ведьмы .Огромное спасибо
ZurdoDev
Нет, потому что я не знаю вашего кода. Просто положите его туда, где он вам нужен. Если вы написали код, то вы знаете, где вы хотите, чтобы он выполнялся, не так ли?
Member 14757261
Хорошо большое вам спасибо