В представлении сетки значение текстового поля теряется после обратной записи
всем привет
у меня есть gridView и в заголовке GridView установлено текстовое поле для записи фильтра в gridview. Проблема в том, что когда я набираю текст (что-то) в текстовом поле для поиска, его поиск идет нормально, но текст теряется в текстовом поле при обратной публикации страницы.
я хочу, чтобы текст оставался в текстовом поле после почтового ящика. так что пользователь видит именно то, что он набрал для фильтрации..
плз научите меня с помощью кода как можно лучше
заранее спасибо
Что я уже пробовал:
в cs попробуйте это
protected void txtcity_TextChanged(object sender, EventArgs e) { try { string practice_code = Dd_TimeFrame.SelectedItem.ToString(); TextBox txt_NewValue = ((TextBox)GridView1.HeaderRow.FindControl("txtcity")); string search_data = txt_NewValue.Text; string module_text = dd_Criteria.SelectedItem.ToString(); con = new SqlConnection(@"Data Source=DEV-TEST\KILIMANJARO;Initial Catalog=MTBC-SYNCH;User ID=it_mis;Password=itmis"); string getquery = "Select table_name,connection_string,Check_COLUMN_NAME From Connection_DB Where ISNULL(Table_Name,'')<>'' AND ISNULL(connection_string,'')<>'' AND ISNULL(Check_COLUMN_NAME,'')<>'' AND interface_name='" + module_text + "'"; SqlCommand comm = new SqlCommand(getquery, con); SqlDataAdapter daa = new SqlDataAdapter(comm); DataTable dtt = new DataTable(); daa.Fill(dtt); con.Close(); if (module_text.Contains("-")) module_text = module_text.Substring(0, module_text.IndexOf("-")); if (dtt.Rows.Count > 0) { string conn_path = dtt.Rows[0]["connection_string"].ToString(); string table_name = dtt.Rows[0]["table_name"].ToString(); string CheckCOlumnName = dtt.Rows[0]["Check_COLUMN_NAME"].ToString(); con = new SqlConnection(conn_path); //new connection string interface_name = dd_Criteria.SelectedItem.ToString(); if (interface_name.Contains("-")) interface_name = interface_name.Substring(0, interface_name.IndexOf("-")); string search_query = "SELECT Module,Ins_name,Ins_Address,Ins_code,INS_ADDRESS1,INS_ADDRESS2,CITY,PRACTICE_CODE,STATE,PostalCode FROM " + table_name + " Where City Like '%" + search_data + "%' and practice_code='" + practice_code + "' and isnull(ins_code,0)=0 "; comm = new SqlCommand(search_query, con); SqlDataAdapter dat = new SqlDataAdapter(comm); // DataTable dt = new DataTable(); DataSet dst = new DataSet(); dat.Fill(dst); con.Close(); if (dst.Tables[0].Rows.Count > 0) { GridView1.DataSource = dst.Tables[0]; GridView1.DataBind(); lbl_msg.Text = ""; lbl_total_recored.Text = "Total No of Records= " + dst.Tables[0].Rows.Count; Total_page.Text = GridView1.PageCount.ToString(); pager.Visible = true; GridView1.Visible = true; GridView2.Visible = false; btnclear.Visible = true; Button1.Visible = true; Response.Write(txt_NewValue.Text); } else { txt_NewValue.Text = "Not Found!"; for (int i = 0; GridView1.Rows.Count > i; i++) { GridView1.Rows[i].Visible = false; } btnclear.Visible = false; Button1.Visible = false; } //if(txt_NewValue.Text=="") //{ // BindData(); //} // } } } catch(Exception ex) { lbl_msg.Text = "Record Could not be loaded because" + ex.Message; } }
и в aspx
&ЛТ;в ASP:GridView в AutoGenerateColumns="false" - в элемент ID="gridview1, на" AllowSorting="true" в атрибут runat="сервер" AllowPaging="истинный" CssClass="GridView в"
OnPageIndexChanging=" GridView1_PageIndexChanging " OnRowCreated=" GridView1_RowCreated " OnRowDataBound="GridView1_RowDataBound" >
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]
Karthik_Mahalingam
вы повторно связываете данные.