2015-12-09 5 views
0

У меня есть текстовые поля, значения которых установлены на загрузку страницы, они также устанавливаются при каждом изменении выпадающего меню. У меня есть кнопка обновления, чтобы обновлять текстовые поля, если есть какие-либо изменения. Если вы измените текстовое поле и нажмите «Обновить», новые значения не будут обновляться. Я считаю, что это потому, что нажатие кнопки запускает обратную передачу. Я могу не только привязываться к загрузке страницы, потому что мне нужно изменить текстовые поля, когда сбрасывается. Любые предлагаемые обходные пути для моего обновления действительно обновляют значения, которые находятся в текстовом поле?Как перейти к кнопке обновления, сделав сообщение назад, а не обновляя значения нового текстового поля

Вот моя страница загрузки:

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 

    If Session.Contents.Count = 0 Or Session("LoggedInSecurityLevel") Is Nothing Then 
     Session("ReturnCode") = 1 
     Response.Redirect("logon.aspx?ReturnUrl=%2f" & Request.RawUrl) 
    Else 

     If IsPostBack = False Then 
      If Session("LoggedInSecurityLevel") = "99" Then 
       dd_pharm.Visible = True 
       GetPharmInfo(Session("LoggedInSecurityLevel").ToString()) 
      End If 
     Else 
      GetPharmInfo(Session("LoggedInSecurityLevel").ToString()) 
     End If 
    End If 

End Sub 

Вот событие нажатия кнопки:

Protected Sub btn_update_Click(sender As Object, e As EventArgs) Handles btn_update.Click 

     Dim Conn As New System.Data.SqlClient.SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("PharmacyConnectionString").ToString) 
    Conn.Open() 

    'Dim ds As New System.Data.DataSet 
    Dim dt As New DataTable() 
    Dim DataAdapter As New System.Data.SqlClient.SqlDataAdapter 
    Dim CommandType As System.Data.CommandType 
    Dim CommandText As String 
    Dim Connection As System.Data.SqlClient.SqlConnection 

    'Call connection and sp............................................................................ 
    CommandType = Data.CommandType.StoredProcedure 
    CommandText = "spu_Pharmacies" 
    Connection = Conn 


    Dim DataCommand As New System.Data.SqlClient.SqlCommand(CommandText, Connection) 
    DataCommand.CommandType = CommandType 

    DataCommand.Parameters.AddWithValue("@PharmacyName", tb_pharmname.Text) 
    DataCommand.Parameters.AddWithValue("@PharmacyContact", tb_contact.Text) 
    DataCommand.Parameters.AddWithValue("@PharmacistName", tb_pharmacist.Text) 
    DataCommand.Parameters.AddWithValue("@PharmacyPhone", tb_phone.Text) 
    DataCommand.Parameters.AddWithValue("@Fax", tb_fax1.Text) 
    DataCommand.Parameters.AddWithValue("@Fax2", tb_fax2.Text) 
    DataCommand.Parameters.AddWithValue("@Email", tb_email.Text.ToString) 
    DataCommand.Parameters.AddWithValue("@Text", tb_text.Text) 
    DataCommand.Parameters.AddWithValue("@Notes", tb_notes.Text) 

    DataCommand.Parameters.AddWithValue("@SendToFax", rb_fax1.SelectedValue) 
    DataCommand.Parameters.AddWithValue("@SendToFax2", rb_fax2.SelectedValue) 
    DataCommand.Parameters.AddWithValue("@SendToEmail", rb_email.SelectedValue) 
    DataCommand.Parameters.AddWithValue("@SendToText", rb_text.SelectedValue) 

    DataCommand.Parameters.AddWithValue("@SecurityCode", lbl_securitycode.Text) 

    DataAdapter.SelectCommand = DataCommand 

    DataAdapter.Fill(dt) 

    Conn.Close() 

    Response.Redirect(Request.RawUrl) 

End Sub 

Вот где устанавливаются текстовые поля:

Private Function GetPharmInfo(ByVal SecurityLevel As String) As Integer 

     Dim Conn As New System.Data.SqlClient.SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("PharmacyConnectionString").ToString) 

     Conn.Open() 

     'Dim ds As New System.Data.DataSet 
     Dim dt As New DataTable() 
     Dim DataAdapter As New System.Data.SqlClient.SqlDataAdapter 
     Dim CommandType As System.Data.CommandType 
     Dim CommandText As String 
     Dim Connection As System.Data.SqlClient.SqlConnection 

     'Call connection and sp............................................................................ 
     CommandType = Data.CommandType.StoredProcedure 
     CommandText = "sps_PharmacyInfo" 
     Connection = Conn 

     Dim DataCommand As New System.Data.SqlClient.SqlCommand(CommandText, Connection) 
     DataCommand.CommandType = CommandType 

     If dd_pharm.Visible = True Then 
      If dd_pharm.SelectedIndex.ToString() = "-1" Then 
       DataCommand.Parameters.AddWithValue("@SecurityCode", "1") 
      Else 
       DataCommand.Parameters.AddWithValue("@SecurityCode", dd_pharm.SelectedValue.ToString()) 
      End If 
     Else 
      DataCommand.Parameters.AddWithValue("@SecurityCode", SecurityLevel) 
     End If 

     DataAdapter.SelectCommand = DataCommand 

     DataAdapter.Fill(dt) 

     If dt.Rows(0)("Active").ToString() = 1 Then 
      tb_active.Text = "Yes" 
     Else 
      tb_active.Text = "No" 
     End If 

     tb_pharmname.Text = dt.Rows(0)("PharmacyName").ToString() 
     tb_contact.Text = dt.Rows(0)("PharmacyContact").ToString() 
     tb_pharmacist.Text = dt.Rows(0)("PharmacistName").ToString() 
     tb_phone.Text = dt.Rows(0)("PharmacyPhone").ToString() 
     tb_fax1.Text = dt.Rows(0)("Fax").ToString() 
     tb_fax2.Text = dt.Rows(0)("Fax2").ToString() 
     tb_email.Text = dt.Rows(0)("Email").ToString() 
     tb_text.Text = dt.Rows(0)("Text").ToString() 
     tb_notes.Text = dt.Rows(0)("Notes").ToString() 

     'RADIO BUTTONS 
     If dt.Rows(0)("SendToFax").ToString() = 0 Then 
      rb_fax1.SelectedValue = dt.Rows(0)("SendToFax").ToString() 
      lbl_fax1.BackColor = System.Drawing.Color.LightCoral 
     Else 
      rb_fax1.SelectedValue = dt.Rows(0)("SendToFax").ToString() 
      lbl_fax1.BackColor = System.Drawing.Color.LightGreen 
     End If 

     If dt.Rows(0)("SendToFax2").ToString() = 0 Then 
      rb_fax2.SelectedValue = dt.Rows(0)("SendToFax2").ToString() 
      lbl_fax2.BackColor = System.Drawing.Color.LightCoral 
     Else 
      rb_fax2.SelectedValue = dt.Rows(0)("SendToFax2").ToString() 
      lbl_fax2.BackColor = System.Drawing.Color.LightGreen 
     End If 

     If dt.Rows(0)("SendToEmail").ToString() = 0 Then 
      rb_email.SelectedValue = dt.Rows(0)("SendToEmail").ToString() 
      lbl_email.BackColor = System.Drawing.Color.LightCoral 
     Else 
      rb_email.SelectedValue = dt.Rows(0)("SendToEmail").ToString() 
      lbl_email.BackColor = System.Drawing.Color.LightGreen 
     End If 

     If dt.Rows(0)("SendToText").ToString() = 0 Then 
      rb_text.SelectedValue = dt.Rows(0)("SendToText").ToString() 
      lbl_text.BackColor = System.Drawing.Color.LightCoral 
     Else 
      rb_text.SelectedValue = dt.Rows(0)("SendToText").ToString() 
      lbl_text.BackColor = System.Drawing.Color.LightGreen 
     End If 

     lbl_updated.Text = "Last Updated: " & dt.Rows(0)("UpdatedDate").ToString() 
     lbl_securitycode.Text = dt.Rows(0)("SecurityCode").ToString() 


     Conn.Close() 

    End Function 

ответ

1

Я не» t см. код загрузки страницы, который устанавливает начальные значения текстового поля, как описано здесь:

«У меня есть текстовые поля, который значение, установленные на странице загрузке»

, но я могу понять, догадаться, что вам нужно сделать, это:

В обработчик событий или подразделах, что ручки значения TextBox на странице загрузки добавить IsPostBack = False consition:

If IsPostBack = False Then 
     'assign your textbox values 
     tb_pharmname.Text = "something" 
     tb_contact.Text = "something else" 
     'etc 
    End If 

Если задания выше, не имеют, что условие, они будут сброшены обратно в исходные значения на постбэка перед тем btn_update_ Щелчок имеет шанс выполнить.

+0

Вы правы, я оставил это. Функция GetPharmInfo() обрабатывает заполнение текстовых полей. Я добавил его к исходному вопросу. Я посмотрю ваше предложение. – glitzsfa

+0

Если я закрою заполнение текстовых полей в предложении If IsPostBack, текстовые поля никогда не будут заполнены за пределами загрузки страницы. Выпадающее имя dd_pharm имеет обратную передачу и изменяет значения текстовых полей. – glitzsfa

+1

Правильно, ваш вызов GetPharmInfo() находится под IsPostBack = false, так что это нормально, но вы также вызываете его под другим: –

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

  • Нет связанных вопросов^_^