Найдите datakey selectedrow и отправьте его в виде строки запроса
привет , у меня есть сетка-представление с полем шаблона, которое содержит кнопку изображения, и вы можете увидеть ее на скриншоте ниже
Мой Gridview
хорошо, я хочу, чтобы, когда пользователь нажмет на эту кнопку изображения(кнопка редактирования), пользователь будет перенаправлен на страницу редактирования с именем : EditUser.aspx и отправит DataKey выбранной строки в виде строки запроса с именем : stcode
поэтому я пишу этот код для этой работы
int selectedRow; protected void imgBtnEdit_Click(object sender, ImageClickEventArgs e) { GridViewRow row = this.GridStudent.SelectedRow; selectedRow = int.Parse(GridStudent.DataKeys[row.RowIndex].Value.ToString()); Response.Redirect("~/Admin/EditUser.aspx?" + "stcode=" + selectedRow); }
на главной странице и напишите этот код в файле EditUser.aspx
protected void Page_Load(object sender, EventArgs e) { usercode = Request.QueryString["stcode"]; GetData(); }
Что я уже пробовал:
private void GetData() { DataTable dt = new DataTable(); con.Open(); SqlCommand sqlCmd = new SqlCommand("SELECT count(*) from Student where St_Code='" + usercode + "'", con); SqlDataAdapter sqldata = new SqlDataAdapter(); sqldata.Fill(dt); if (dt.Rows.Count > 0) { lblName.Text = dt.Rows[0]["St_Name"].ToString(); //Where ColumnName is the Field from the DB that you want to display lblFamily.Text = dt.Rows[0]["St_Family"].ToString(); lblStcode.Text = dt.Rows[0]["St_Code"].ToString(); tbPassword.Text = dt.Rows[0]["St_Password"].ToString(); } con.Close(); }
но каждый раз он будет возвращать stcode=0 :(
я знаю, что проблема заключается в главной странице, но я не знаю, как ее решить
FranzBe
Вы заполняете свою таблицу данных только количеством студентов, так что в ней будет только одна строка с одним столбцом. Код после if (dt.Rows.Count > 0) не имеет, следовательно, никакого смысла. Попробуйте заменить ' count(*)' на '*', 'sqlCmd' должен быть передан конструктору SqlDataAdapter, в вашем коде нет никакой связи между ними.
Member 13019612
Вы правы, но моя проблема все еще stcode=0