2013-07-26 3 views
1

На моей странице login.aspx, когда я нажимаю кнопку «Отправить», значение первого текстового поля сохраняется. Второй текстовый поле (поле пароля) автоматически очищается, поэтому им не удается войти на домашнюю страницу. Даже если я закрываю окно и снова открываю его, не работает. Почему текстовое поле очищается нажатием кнопки? это мой код: ASPX страница:Почему текстовое поле автоматически очищается при нажатии кнопки

<asp:Panel ID="Panel1" runat="server" Height="251px" Style="z-index: 100; left: 349px; 
      position: absolute; top: 320px" Width="415px"> 
      <asp:Label ID="Label1" runat="server" Style="z-index: 100; left: 126px; position: absolute; 
      top: 89px" Text="USERNAME:" ForeColor="#C04000"></asp:Label> 
     <asp:Label ID="Label2" runat="server" Style="z-index: 102; left: 126px; position: absolute; 
      top: 136px" Text="PASSWORD:" BackColor="White" BorderColor="White" ForeColor="#C04000"></asp:Label> 
      <asp:Label ID="Label3" runat="server" ForeColor="Red" Style="z-index: 105; left: 151px; 
       position: absolute; top: 166px" Text="INVALID USERNAME OR PASSWORD" Visible="False" 
       Width="314px"></asp:Label> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" 
       ErrorMessage="FIELD CANNOT BE EMPTY" Style="z-index: 106; left: 423px; position: absolute; 
       top: 90px" Width="227px"></asp:RequiredFieldValidator> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" 
       ErrorMessage="FIELD CANNOT BE EMPTY" Style="z-index: 107; left: 424px; position: absolute; 
       top: 135px" Width="214px"></asp:RequiredFieldValidator> 
      <asp:RegularExpressionValidator ID="RegularExpressionValidator4" runat="server" ControlToValidate="TextBox1" 
       ErrorMessage="ENTER ONLY CHARACTERS(MIN2)" Height="1px" Style="z-index: 108; left: 415px; 
       position: absolute; top: 88px" ValidationExpression="^[a-zA-Z\s]{2,15}$" Width="228px"></asp:RegularExpressionValidator> 
      <asp:Label ID="Label4" runat="server" Font-Size="XX-Large" ForeColor="#8080FF" Style="z-index: 109; 
       left: 204px; position: absolute; top: -62px" Text="LOGIN " Width="109px"></asp:Label> 

      <br /> 
      <br /> 
      <br /> 
      <br /> 
      <br /> 
      <br /> 
      <br /> 
      <asp:TextBox ID="TextBox1" runat="server" Style="z-index: 101; left: 241px; position: absolute; 
      top: 89px"></asp:TextBox> 
      <asp:TextBox ID="TextBox2" runat="server" Style="z-index: 101; left: 242px; position: absolute; 
      top: 132px" TextMode="Password"></asp:TextBox> 
      <asp:Button ID="Button1" runat="server" Text="SUBMIT" Style="z-index: 101; left: 179px; position: absolute; 
      top: 195px" onclick="Button1_Click"/> 

     </asp:Panel> 

aspx.cs страница:

protected void Page_Load(object sender, EventArgs e) 
    { 
     string pwd = TextBox2.Text; 
     TextBox2.Attributes.Add("value", pwd); 
    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      String un = null; 
      String pw = null; 
      string con1 = ConfigurationManager.ConnectionStrings["con"].ConnectionString; 
      OleDbConnection con = new OleDbConnection(con1); 

      con.Open(); //connection must be openned 
      OleDbCommand cmd = new OleDbCommand("SELECT * from admin", con); // creating query command 
      OleDbDataReader reader = cmd.ExecuteReader(); // executes query 
      while (reader.Read()) // if can read row from database 
      { 
       un = reader[0].ToString(); 
       pw = reader[1].ToString(); 
       // Get column 1 and column 3 value and print 
      } 
      if (un.Equals(TextBox1.Text) && (pw.Equals(TextBox2.Text))) 
      { 
       Response.Redirect("~/homepage.aspx"); 
      } 
      else 
      { 
       Label3.Visible = true; 
       TextBox1.Text = ""; 
       TextBox2.Text = ""; 
      } 

     } 
     catch (Exception ex) 
     { 
      //MessageBox.Show("error"+ex); 
     } 

, когда я добавить это в загрузке страницы:

string pwd = TextBox2.Text; 
TextBox2.Attributes.Add("value", pwd); 

значение текстового поля является reatined я думаю .. но он не входит в событие нажатия кнопки.

+1

Разместите код здесь – Gangadhar

+0

если (un.Equals (TextBox1.Text) && (pw.Equals (TextBox2.Text))) так кронштейн закрытия –

+0

Подставьте тормозную точку в цикле while и проверить, что вы получаете внутри «un» и «pw» – tariq

ответ

0
if (un.Equals(TextBox1.Text) && (pw.Equals(TextBox2.Text))) 
     { 
      Response.Redirect("~/homepage.aspx"); 
     } 

приведенный выше код должен быть внутри время цикла и код внутри остальное должно быть после того, как время цикла

+0

Я изменил код, пока текстовое поле не очистится автоматически – user2605748

+0

@Gangadhar, Почему так? можете ли вы уточнить – tariq

+0

, вам нужно проверить условие внутри цикла, где вы получите значения – Gangadhar

0

Вот как работает пароль текстовое поле, если вам необходимо сохранить значение затем сохранить в ViewState или сессии или сделать то, что я делаю, и поместить имя пользователя и пароль на последний шаг перед отправкой формы.

private string Password 
{ 
    get 
    {   
     string rv = ""; 
     if(ViewState["Password"] != null) 
     { 
      rv = ViewState["Password"].ToString(); 
     } 
     return rv;    

    } 
    set 
    { 
     ViewState["Password"] = value; 
    } 
} 


//on button click 
this.Password = this.PasswordTextBox.Text 
+0

все еще не работает – user2605748

+0

Это ограничение безопасности, вы не можете установить текстовое поле пароля в код this.passwordtextbox.text = "123" и он не восстанавливает значение после обратной передачи. – Fab

+0

Используете ли вы проверку подлинности на основе форм, потому что ваш код не будет работать, вам необходимо установить билет FormsAuthentication и сделать правильный логин, вы должны изучить использование MembershipProvider. – Fab

0

Может быть, это поможет вам

TextBox1.Attributes.Add("value", TextBox1.Text); 
TextBox2.Attributes.Add("value", TextBox2.Text); 
+0

это тоже не работает :( – user2605748

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