2017-04-13 4 views
1

ASP.netテキストボックスの内容を見つけることが#できない:C私は登録ウィザードのようなものを作成しようとしていますので、下記のようなASP内の異なるセクションがあるオーケー

<div class="panel panel-default"> 
     <div class="panel-heading"> 
      <h4 class="panel-title"> 
      <a href="#addwizard" data-parent="#accordion-demo" data-toggle="collapse"> 
       Term Time Address 
      </a> 
      </h4> 
     </div> 
     <div id="termaddy" class="panel-collapse collapse in" runat="server"> 
      <div class="panel-body"> 
      <form id="form-termaddy" > 
      <div class="main_input_box"> 
       <div class="col-lg-6"> 

        <div class="form-group"> 
        <asp:TextBox ID="txttermhousenum" runat="server" placeholder="House Number" class="form-control" textmode="SingleLine"></asp:TextBox> 
         <asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator28" controltovalidate="housenum" errormessage="Required Field" display="Dynamic"/> 
       </div> 

        <div class="form-group"> 
        <div class="main_input_box"> 
        <asp:TextBox ID="txtxtermstreet" runat="server" placeholder="Street" class="form-control" textmode="SingleLine"></asp:TextBox> 
         <asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator29" controltovalidate="street" errormessage="Required Field" display="Dynamic"/> 
       </div> 
         </div> 

        <div class="form-group"> 
        <div class="main_input_box"> 

        <asp:TextBox ID="txtxtermpost" runat="server" placeholder="Postcode" class="form-control" textmode="SingleLine"></asp:TextBox> 
         <asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator31" controltovalidate="postcode" errormessage="Required Field" display="Dynamic"/> 
       </div> 
         </div> 


        </div> 
       </div> 
      </form> 
      </div> <!--/.panel-body --> 
     </div> <!-- /#addwizard --> 
     </div> <!-- /.panel.panel-default --> 

だから、いつでもユーザーはフォームを記入し、保存をヒットします。 C#のは、テキストボックスの内容を取得し、DBを更新:

//term time address info 
     string txttermhouse = ((TextBox)termaddy.FindControl("txttermhousenum")).Text; 
     string txttermstr = ((TextBox)termaddy.FindControl("txtxtermstreet")).Text; 
     string txttermpostcode = ((TextBox)termaddy.FindControl("txtxtermpost")).Text; 

     termaddress(txttermhouse, txttermstr, txttermpostcode); 

問題のコードは、この部分を通過するとき、それは空白のテキストボックスのそれぞれを見てて、空のDBに保存していることです文字列。私はまた、メソッドに直接テキストボックスを参照しようとしました:

termaddress(txttermhousenum.Text, txtxtermstreet.Text, txtxtermpost.Text); 

しかしどちらの方法もうまくいかないようです。テキストボックスの値を取得する方法については、この問題で非常に混乱していると大変感謝しています。

答えて

2

マスターページを使用する場合は、2つの<form runat="server">タグがないことを確認してください。私はかつてこの問題を経験しました。その結果でした。

+0

アコーディオンの各部分にはフォームタグがあり、それは問題のようでした。これらのタグを削除するとすべて機能します。 – user4184963

+0

それで私の答えは助けになりましたか?もしそうなら、アップヴォートがそのトリックをするだろう。ハッピーコーディング。 –

+0

ええ、あなたはフォームタグを見ての道を私に導いたので、ありがとう:) – user4184963

0

あなたは、直接にFindControlを使用しての必要性をTextboxを使用していないとして:

string txttermhouse = txttermhousenum.Text; 
    string txttermstr = txtxtermstreet.Text; 
    string txttermpostcode = txtxtermpost.Text; 

を次のように

は、次のようにあなたのメソッドに渡すことができ、それらにアクセスしてみてください:

termaddress(txttermhouse , txttermstr , txttermpostcode); 
+0

@ user4184963ここであなたはこれを呼びますか、どのイベントでですか?また、あなたのpage_loadメソッド – Webruster

0

サーバーで実行中のdivを使用してコントロールを探しているのはなぜですか?コントロールを見つけるためにのみ使用している場合は、divからrunat="server"を削除することをおすすめします。これにより、応答が遅くなります。

次のようにあなたは、単にそれらにアクセスすることができます

string txttermhouse = txttermhousenum.Text; 
    string txttermstr = txtxtermstreet.Text; 
    string txttermpostcode = txtxtermpost.Text; 

あなたは本当にコントロールを見つける必要がありません。あなたはそれらに直接アクセスすることができます。 コントロールを見つけるには、グリッド列 テンプレートやリピーターなどの中で繰り返す場合は、コントロール を見つける必要があります。そうでなければ、直接アクセスすることができます。

+0

を私に示しました。 C#はまだテキストボックスが空であるとみなします – user4184963

+0

Page_Loadイベントを投稿できますか?また、あなたはそのコードを実行していますか?アップデートパネル内ですか? –

関連する問題