2014-10-26 8 views
0

Я ищу Много ... но не удалось реализовать. вот мой код, как я предотвращаю дублирование вставки на странице обновления (как я использую viewstate, или любой другой метод .... resposnse.redirect не является решением в этом случае).Предотвращение повторной записи записи на страницу обновления

protected void btn_save_click(object sender, EventArgs e) 
    { 
      System.Data.DataTable dt_plotid = new System.Data.DataTable(); 
      dt_plotid = FghBAL.Admitting.GetMax_ByPlotID(txt_plot.Text); 
      string plotid = dt_plotid.Rows[0]["ID"].ToString(); 
      if (FghBAL.Alotee.InserAllotee(txt_alotee_name.Text.ToUpper(), ddl_alotee_sw.SelectedValue.ToUpper(), txt_alotee_fname.Text.ToUpper(), alotee_cnic, txt_alotee_phone.Text, txt_alotee_cellno.Text, txt_alotee_address.Text, txt_alotee_email.Text, plotid)) 
      { 
       lbl_error_3.Visible = true; 
       lbl_error_3.Text = "Add Successfully"; 
       txt_alotee_name.Enabled = false; 
       ddl_alotee_sw.Enabled = false; 
       txt_alotee_fname.Enabled = false; 
       txt_alotee_cnic_1.Enabled = false; 
       txt_alotee_cnic_2.Enabled = false; 
       txt_alotee_cnic_3.Enabled = false; 
       txt_alotee_phone.Enabled = false; 
       txt_alotee_cellno.Enabled = false; 
       txt_alotee_address.Enabled = false; 
       txt_alotee_email.Enabled = false; 
       System.Data.DataTable dt_alotee_data = new System.Data.DataTable(); 
       dt_alotee_data = FghBAL.Alotee.GetDatabyPlot_Id(plotid); 
       grid_alotee.DataSource = dt_alotee_data; 
       grid_alotee.DataBind(); 
       grid_alotee.Visible = true; 
       btn_save_alotee.Visible = true; 

       btn_link_another_alotee.Visible = true; 
       lbl_grd_alotee.Visible = true; 
       tabcontent3.Style.Add("height", "80%"); 
       //ViewState["dt_alotee_view"] = dt_alotee_data; 
       btn_save_alotee.Enabled = false; 
       // Response.Redirect(Request.Url.AbsoluteUri); 
      } 
      else 
      { 
       lbl_error_3.Text = "Unable to add Allottee Information"; 
      } 
     } 
+0

* resposnse.redirect не является решением в этом сценарии * почему? –

+0

, потому что он перемещается на 1-ю вкладку .. но я хочу, чтобы он оставался на текущей вкладке .. im используя несколько вкладок на одной странице (вкладка управляется радиокнопками) –

+0

Добавьте дубликат проверки логики в метод 'InserAllotee'. –

ответ

1

Ваш вопрос, кажется, указывает на то, что обработчик событий кнопки запускается при обновлении страницы - что является нечетным. Обновление страницы приводит к действию GET. Изменения на стороне сервера должны выполняться только в POST запросах. Обработчики событий кнопок должны вызываться только при нажатии кнопки. Я не могу сказать из этого кода, каким образом ваша архитектура нарушает эти положения.

+0

Я отлаживаю код, когда обновляю страницу, он не переходит в btn_save_click(), но запись вставлена ​​в db duplicate –

+0

Если он не переходит к этой функции, запись не вставлен из этой функции (или нет в этот момент времени). Любой другой код, который вставляет, помимо кода, который вы опубликовали? –

+0

Я уверен, что совсем нет –

0

Вы можете использовать состояние представления или сеанс для хранения флага, когда первая загрузка страницы, а затем изменить значение флага к истинному, когда вы вставили в базе данных получить полный код отсюда:

http://dotnetready4u.blogspot.com/2015/01/avoid-repaeted-insertion-on-page-refresh.html

Смежные вопросы