2011-01-20 3 views
1

나는 그 질문이 기묘하게 말려지는 것을 안다. 그러나 나는 그밖에 그것을 말할 방법을 몰랐다.
asp.net에서 "고객 편집"페이지를 만들고 있고 현재 값을 모두 PageLoad의 텍스트 상자에 입력하고 싶습니다. 데이터 바인딩을 사용하여이 작업을 수행하는 방법이 있습니까? 아니면 DataContext에서 Customer를 가져온 다음 TextBoxes를 한 줄씩 설정해야합니까? 즉TextBox 기본값을 그룹으로 바인딩하는 방법이 있습니까?

firstNameTB.Text = Customer.FirstName; 
lastNameTB.Text = Customer.LastName; 
... 
+0

가능한 속는 : http://stackoverflow.com/questions/4682583/better-way-to-populate-form-fields-를 from-sql/4682940 # 4682940 –

답변

1

당신은 FormView를 사용하고 결합하는 데이터를 컨트롤 할 수 : 행에 대한 업데이트 버튼을 클릭하면 이 MSDN:Data-Binding Expressions Overview

, 바인딩 구문을 사용하여 바인딩 각 컨트롤의 속성 값을 추출하고, 업데이트 작업을 위해 데이터 소스 컨트롤에 전달됩니다.

<asp:FormView ID="FormView1" 
     DataSourceID="SqlDataSource1" 
     DataKeyNames="CustomerID"  
     RunAt="server"> 

<EditItemTemplate> 
    <table> 
    <tr> 
     <td align=right> 
     <b>Customer ID:</b> 
     </td> 
     <td> 
     <%# Eval("CustomerID") %> 
     </td> 
    </tr> 
    <tr> 
     <td align=right> 
     <b>First Name:</b> 
     </td> 
     <td> 
     <asp:TextBox ID="EditFirstNameTextBox" RunAt="Server" 
      Text='<%# Bind("FirstName") %>' /> 
     </td> 
    </tr> 
    <tr> 
     <td align=right> 
     <b>Last Name:</b> 
     </td> 
     <td> 
     <asp:TextBox ID="EditLastNameTextBox" RunAt="Server" 
      Text='<%# Bind("LastName") %>' /> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
     <asp:LinkButton ID="UpdateButton" RunAt="server" 
      Text="Update" CommandName="Update" /> 
     &nbsp; 
     <asp:LinkButton ID="CancelUpdateButton" RunAt="server" 
      Text="Cancel" CommandName="Cancel" /> 
     </td> 
    </tr> 
    </table> 
</EditItemTemplate>    
</asp:FormView> 
+1

실제로 FormView가 필요하지 않습니다. 데이터 바인딩 식을 특성 (예 : Label 또는 Text 속성 또는 TextBox의 Text 속성)에 할당하고 주변 컨트롤이 어떻게 든 라이프 사이클에서 .DataBind()를 수신하는지 확인하십시오. – citronas

+0

잘 알고 있습니다. 사실 OP는 '고객 편집'페이지를 만들고 싶어하기 때문에 FormView를 언급했습니다. 따라서 그는 FormView/DetailsView- 컨트롤을 모르는 것으로 간주합니다. –

관련 문제