2017-04-21 74 views
0

我试图创建注册表单,每次单击提交按钮时,我使用的属性总是返回空值,因此一旦数据库中的数据显示空行当按下按钮时asp.net文本返回空值

的按钮和格式的HTML代码:

<div class="tab-2 resp-tab-content" aria-labelledby="tab_item-1"> 
<div class="facts"> 
<div class="register"> 
<form action="#" method="post"> 
<asp:TextBox ID="txt_emailreg" runat="server" placeholder="Email Address:" type="text" required="" EnableViewState= "false"></asp:TextBox>      
<asp:TextBox ID="txt_passwordreg" runat="server" placeholder="Password:" type="password" required="" EnableViewState= "false"></asp:TextBox>             
<asp:TextBox ID="txt_fName" runat="server" placeholder="First Name:" type="text" required="" EnableViewState= "false"></asp:TextBox>          
<asp:TextBox ID="txt_lName" runat="server" placeholder="Last Name:" type="text" required="" EnableViewState= "false"></asp:TextBox>        
<asp:TextBox ID="txt_contactNumber" runat="server" placeholder="Contact Number:" type="text" required="" EnableViewState= "false"></asp:TextBox> 
<asp:RadioButton ID="rbtn_Male" Text="Male" runat="server"/> 
<asp:RadioButton ID="rbtn_Female" Text="Female" runat="server"/> 

<div class="sign-up"> 
<asp:Button ID="btn_register" runat="server" Text="Register Account" type="submit" OnClick="btn_register_Click" UseSubmitBehavior="false" data-dismiss="modal" /> 
<input type="submit" value="Create Account"/> 
    </div> 
</form> 
    </div> 
    </div> 
    </div> 

C#代码:

的按钮单击事件
public string RegisterEmail 
{ 
    get { return txt_emailreg.Text; } 
    set { txt_emailreg.Text = value; } 
} 

public string RegisterPassword 
{ 
    get { return txt_passwordreg.Text; } 
    set { txt_passwordreg.Text = value; } 
} 

public string FirstName 
{ 
    get { return txt_fName.Text; } 
    set { txt_fName.Text = value; } 
} 

public string LastName 
{ 
    get { return txt_lName.Text; } 
    set { txt_lName.Text = value; } 
} 

public string ContactNumber 
{ 
    get { return txt_contactNumber.Text; } 
    set { txt_contactNumber.Text = value; } 
} 

public string Gender 
{ 
    get 
    { 
     if (rbtn_Female.Checked) 
     { 
      return "F"; 
     } 
     else if (rbtn_Male.Checked) 
     { 
      return "M"; 
     } 

     else 
     { 
      return ""; 
     } 
    } 

    set 
    { 
     if (value == "F") 
     { 
      rbtn_Female.Checked = true; 
      rbtn_Male.Checked = false; 
     } 
     else if (value == "M") 
     { 
      rbtn_Female.Checked = false; 
      rbtn_Male.Checked = true; 
     } 
    } 
} 

protected void btn_register_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      SqlConnection connAccount = new SqlConnection(connString); 
      connAccount.Open(); 

      string sqlInsertStatement = @"insert into accountsTB values ('" + 
               RegisterEmail + "','" + 
               RegisterPassword + "','" + 
               FirstName + "','" + 
               LastName + "','" + 
               ContactNumber + "','" + 
               Gender + "')"; 

      SqlCommand cmdTxt = new SqlCommand(sqlInsertStatement, connAccount); 
      cmdTxt.ExecuteNonQuery(); 
      connAccount.Close(); 
      connAccount.Dispose(); 

     } 

     catch (Exception ex) 
     { 

     } 
} 
+0

在网络表单,您可以访问你的控制你的单击方法,只需使用'.Text'作为TextBox和'.Value'作为RadioButton(例如'RegisterEmail'的'txt_emailreg.Text') –

+0

不要忘记使用回发按钮和表单,否则会消失数据。在将记录提交给db之前,还需要验证出最佳实践 –

+0

您是否在页面加载中设置了这些tetbox的值? –

回答

1

在你的问题,你已经发布的代码,但韦迪[R指定有关,你在你的方法分配值的变量的任何地方,请找一个样本,你需要怎样的文本框的值分配给您的局部变量

RegisterEmail = txt_emailreg.Text;

+0

对不起,我忘了包括我的属性。 – mffa

+0

@mffa为什么要将它们保存为属性,因为您遇到的问题是在“文本框”中输入值时。只有在回发时,属性才会获得该值,只有您可以将值检索到属性值中。 – Webruster

+0

我该如何应用回传? – mffa