2017-02-22 7 views
0

웹 양식 응용 프로그램에서 서버 측 컨트롤을 사용하고 있습니다. 이것은 HTML 요소와 서버 측 요소를 폼의 측면 (asp : content)에 추가하지만 그 페이지의 본문에 추가하는 것입니다. 서버 측 (버튼 클릭에서) 컨트롤의 값/텍스트는 null을 반환합니다. 컨트롤이 asp : content 태그 외부에있을 때 null을 반환하는 특별한 이유가 있습니까?양식 외부에 있지만 본체가있는 경우 값/텍스트는 서버 측 컨트롤에서 null이됩니다.

나는 알고 그 수도의 형태로 내부 그런데 왜 난 그냥 내가 통해 page.Later에 텍스트 상자를 추가 한 다음 아래 어떤 제안 에 대한 자세한 프로세스 감사를 서버 측 이벤트의 값을 가지고 게시하고 있지 않다 유지되지 스크립트를 body 태그에 추가합니다. 이제는 null

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CheckboxIssue._Default" %> 


    <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 


<script> 
     $("#MainContent_TextBox2").appendTo("body"); 

    </script> 

}

서버 측

protected void btn_Click(object sender, EventArgs e) 
    { 
     var text1 = TextBox1.Text; 
    } 
+0

문제를 이해하지 못한다면 문제를 설명하는 코드를 작성하십시오. –

+0

본인의 컨트롤을 양식이 아닌 body 태그 안에 보관하고 있습니다. 그래서 서버 측 클릭 이벤트에서 널 반환 null –

+0

코드를 추가 thnx –

답변

1

측 서버를 확인하면서 그들은 이유가 웹 양식을했다. 개념은 서버 컨트롤을 폼 내에 유지하고 서버 사이드 핸들러를 사용하여 UI 이벤트에 항상 게시하는 것입니다. 따라서 웹 폼을 사용하는 경우 해당 규칙을 따라야합니다.

렌더링 된 양식 외부에 컨트롤을 가져올 수 있지만 aspx 엔진은 포스트 백에서 해당 값을 선택하지 않습니다.