ormonds Ответов: 1

Как я могу получить страницу, чтобы обновить после обновления SQL для элемента управления GridView?


У меня есть веб-приложение (C#), которое имеет выпадающий список, в котором пользователи выбирают дату окончания недели для расписаний:-
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
 {
     Session["ChosenWeekEnding"] = DropDownList1.SelectedValue;
     RefreshTransactions(DropDownList1.SelectedValue);
     Response.Redirect(Request.RawUrl, true);
 }

RefreshTransactions выполняет SQL - запрос:-
protected void RefreshTransactions(string WE)
    {
        string WorkbenchConnection = ConfigurationManager.ConnectionStrings["WorkbenchConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(WorkbenchConnection);
        con.Open();
        string sqltext = "Select JobCode, ActivityCode, WorkCentreCode, TranDate FROM JobTransactions WHERE JobTranReference = '" + WE + "' AND PersonID = 3434 ";
        SqlCommand cmd = new SqlCommand(sqltext,con);
        SqlDataReader rdr = cmd.ExecuteReader();
        GridView1.DataSource = rdr;
        GridView1.DataBind();
        GridView1.Visible = true;
        con.Close();
    }

При первой загрузке страницы результаты будут действительны. Однако использование выпадающего списка для изменения значения WE, по-видимому, ничего не делает; страница остается неизменной.
Я новичок в веб-приложениях, использующих SQL, чего мне не хватает?

Что я уже пробовал:

Я переместил ответ.Перенаправление в различные другие места кода. Я долго искал примеры для подражания; на самом деле то, что я сделал, было взято из примера.

j snooze

Прежде чем разобраться в этом, обязательно загляните в google и узнайте о параметризованных запросах, иначе вы скоро узнаете о чудесах SQL-инъекции.

Определенно используйте точки отладки и останова для пошагового выполнения кода. Убедитесь, что значение переменной WE-это то, что вы ожидаете от своего выпадающего списка, и что оно должно возвращать что-то из SQL.

ormonds

Спасибо. Да, значение WE правильно, у меня есть временное текстовое поле, которое отображает запрос. Когда я вырезаю и вставляю его в SQL, он работает нормально.
Я начну рассматривать параметризованные запросы.

1 Ответов

Рейтинг:
4

Sandeep Mewara

то, что вы ищете, - это каскадный эффект.

Вы не помечены ASP.net webforms или MVC поэтому посоветовали бы вам поискать, как это сделать частичное обновление страницы Ищите способы, которые можно сделать - через javascript/jquery или updatepanel.

Есть много примеров в интернете.

С. П.:
1. Вам также нужно найти параметризованный запрос и убедиться, что вы его используете
2. вам не нужен ответ.перенаправление для обновления той же страницы, чтобы перезагрузить данные сетки на основе изменения.