Как показать данные из SQL-запроса в виде гиперссылки в datagridview
Я заполняю свой datagridview из своей базы данных следующим образом
con.Open(); SqlCommand cmd = new SqlCommand("select consumerData01.consumerSubDivision as 'Sub-Division',COUNT (*) as TOTAL," + "SUM(case when Office_AppStatus= 'Demand Notice Issued' then 1 else 0 end) as 'Demand Notice Issued'," + "SUM(case when Office_AppStatus= 'Survey Report' then 1 else 0 end)as 'Survey'," + "SUM(case when Office_AppStatus= 'Rejected' then 1 else 0 end)as 'Rejected'," + "SUM(case when Office_AppStatus= 'Submitted' then 1 else 0 end)as 'Submitted'," + "SUM(case when Office_AppStatus= 'Meter Installed' then 1 else 0 end)as 'Meter Installed'" + "from OfficeDat01 " + "inner join consumerData01 on consumerAppRegNo = OfficeDat01.Office_AutoCode " + "where consumerData01.consumerRegDate between '" + d1 + "' and '" + d2 + "'" + " and consumerSubDivision like '" + s + "%'" + "group by consumerSubDivision ", con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); con.Close(); if (ds.Tables[0].Rows.Count > 0) { GridView1.DataSource = ds; GridView1.DataBind(); } else { GridView1.DataSource = ""; GridView1.DataBind(); lblMsg.Font.Bold = true; lblMsg.ForeColor = System.Drawing.Color.Red; lblMsg.Text = "No Record Found";
эта часть работает нормально, но теперь я хочу показать значения в виде гиперссылки в представлении datagrid вместо текста, чтобы, когда я нажимаю на конкретную ссылку, она должна перейти на страницу, показывающую детали этой записи.
Что я уже пробовал:
Я пробовал следовать этому, но это работает только для 2-го столбца, и я хочу сделать то же самое со всеми столбцами, имеющими числовое значение.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow) { // Get the value in the hyperlink column. string HyperLinkValue = e.Row.Cells[1].Text; HyperLink myLink = new HyperLink(); myLink.NavigateUrl = HyperLinkValue; myLink.Text = HyperLinkValue; e.Row.Cells[1].Controls.Add(myLink); } }