2013-06-18 3 views
0

두 필드의 값을 결합하여 세 번째 필드의 값을 삽입하려는 삽입 화면이 있습니다. 현재 나는 성과 이름 필드와 표시 이름 필드를 가지고 있습니다 (아래 참조). 표시 이름 필드는 항상 (이름) + ""+ (성 필드의 첫 글자) 여야합니다. 나는 수동으로 이것을 타이핑해야하는 번거 로움을 덜어 주길 원한다. FName과 LName 필드의 값을 취하고 그 값을 결합하기 위해 어떻게 아래의 예제에서 "Dname"매개 변수를 설정할 수 있습니까?여러 필드의 값을 기준으로 삽입 매개 변수를 만듭니다 - .NET

<asp:FormView ID="testFormView" runat="server" DataKeyNames="ID" DataSourceID="testDataSource"> 
    <InsertItemTemplate> 
     First Name: <asp:TextBox ID="First_NameTextBox" runat="server" Text='<%# Bind("FName") %>' /> 
     <br /> 
     Last Name: <asp:TextBox ID="Last_NameTextBox" runat="server" Text='<%# Bind("LName") %>' /> 
     <br /> 
     Display Name: <asp:TextBox ID="Display_NameTextBox" runat="server" Text='<%# Bind("DName") %>' /> 
     <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" /> 
    </InsertItemTemplate> 
</asp:FormView> 
<asp:SqlDataSource ID="testDataSource" runat="server" 
    InsertCommand="INSERT INTO [Users] ([FName], [LName], [DName]) VALUES (@FName, @LName, @DName)"> 
    <InsertParameters> 
     <asp:Parameter Name="FName" Type="String" /> 
     <asp:Parameter Name="LName" Type="String" /> 
     <asp:Parameter Name="DName" Type="String" /> 
    </InsertParameters> 
</asp:SqlDataSource> 

나는 코드 숨김에서 C#을 사용하고 있습니다.

답변

1

javascript를 사용하여 수동으로 이름을 작성하고 텍스트 상자에 덤프 할 수 있습니다. 첫 번째 및 마지막 이름 텍스트 상자의 blur 이벤트에 처리기를 연결하기 만하면됩니다. 게시하면 사용자가 직접 입력 한 것처럼 표시됩니다.

또는 더 나은 방법으로, 데이터 액세스를 마크 업 밖으로 옮기고 실제 코드에 넣고 ADO.NET을 사용하여 데이터베이스를 올바르게 호출하십시오. 이렇게하면 명령을 원하는대로 정확하게 빌드 할 수있는 유연성이 생깁니다 필요한 매개 변수를 바인딩합니다.

<asp:SqlDataSource ID="testDataSource" runat="server" 
    InsertCommand="INSERT INTO [Users] ([FName], [LName], [DName]) VALUES (@FName, @LName, (@FName + ' ' + SUBSTRING(@LName, 1, 1)))"> 
    <InsertParameters> 
     <asp:Parameter Name="FName" Type="String" /> 
     <asp:Parameter Name="LName" Type="String" /> 
    </InsertParameters> 
+0

는 예, 자바 스크립트 옵션을 생각했지만, 그것을 피하기 위해 원 : –

0

바로 아래에에 InsertCommand에서 SQL 쿼리를 업데이트했다, 이것 정말 간단한 해결책을 발견. 나는 실제로 InsertCommand를 업데이트하고, 잘 작동했다.