2017-04-21 106 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

相關問題