2017-04-13 12 views
1

그래서 등록 마법사의 종류를 만들기 위해 노력하고, 그래서 그런 아래와 같이 ASP 내에서 다른 부분이 있습니다 좋아요 : 그래서 때마다C#을 수없는

<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

마스터 페이지를 사용하는 경우 두 개의 <form runat="server"> 태그가 없는지 확인하십시오. 나는 한 번이 문제점을 경험하고 그것의 결과이었다.

+0

아코디언의 각 부분에는 양식 태그가있어 문제가되는 것 같습니다. 이러한 태그를 삭제하면 모든 것이 작동합니다. – user4184963

+0

그래서 내 대답이 도움이 되었습니까? 그랬다면, upvote 트릭을 할 것입니다. 행복한 코딩. –

+0

그래, 너는 나를 그렇게 양식 태그를 보는 길로 이끌었다. – user4184963

0

직접 Textbox를 사용하는 것처럼,의 FindControl의 사용의 필요가 없습니다 :

보십시오 다음과 같이 당신은 당신의 방법으로 전달할 수

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 이벤트를 게시 할 수 있습니까? 또한 어떤 코드에서 해당 코드를 실행하고 있습니까? 업데이트 패널 내에 있습니까? –