2012-11-13 2 views
1

ASP.Net DetailsView 데이터가 처음 표시 될 때이 코딩에 표시된 변수를 채우는 방법을 말해 줄 수 있습니까?변수를 DetailsView 텍스트 상자 데이터 값으로 채우기

는 이미 코드 숨김 파일이 시도했지만 없다는 오류 나타났다 :

Protected Sub DetailsViewDetails_DataBound(sender As Object, e As EventArgs) Handles DetailsViewDetails.DataBound 

    Dim txtOriginalRegistrationFee As TextBox 

    If DetailsViewDetails.CurrentMode = DetailsViewMode.Edit Then 
     txtOriginalRegistrationFee = FindControl("TextBoxRegistrationFee") 

     If String.IsNullOrEmpty(txtOriginalRegistrationFee.Text) = False Then 
      MsgBox(txtOriginalRegistrationFee) 
     End If 
    End If 
End Sub 

이 영문 파일에서 다음과 같습니다 :

Object reference not set to an instance of an object. 

는 코딩입니다
<asp:TemplateField HeaderText="RegistrationFee" SortExpression="RegistrationFee"> 
    <EditItemTemplate> 
     <asp:TextBox ID="TextBoxRegistrationFee" runat="server" Text='<%# Eval("RegistrationFee") %>'></asp:TextBox> 
    </EditItemTemplate> 

    <InsertItemTemplate> 
     <asp:TextBox ID="TextBoxRegistrationFee" runat="server" Text='<%# Bind("RegistrationFee") %>'></asp:TextBox> 
    </InsertItemTemplate> 

    <ItemTemplate> 
     <asp:Label ID="LabelRegistrationFee" runat="server" Text='<%# Bind("RegistrationFee", "{0:c}") %>'></asp:Label> 
    </ItemTemplate> 

    <ItemStyle ForeColor="Blue" /> 
</asp:TemplateField> 

* 업데이트 *

당신의 도움에 따라 업데이트 된이 코딩을 사용해 보았지만 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다"가 표시됩니다. DetailsView의 편집 버튼을 클릭하면 오류가 발생합니다.

+0

어떤 줄에서 오류가 발생합니까? – nickles80

+0

If String.IsNullOrEmpty (txtOriginalRegistrationFee.Text) = False Then –

+0

Gridview에 있습니까? – nickles80

답변

1

FindControl 함수는 컨트롤을 필요로하지 않으면 검색 (페이지 또는 콘텐츠) 레벨 컨트롤을 검색합니다.

는 MsgBox 함수와 라인 중 하나가 작동하지 않습니다 그런데

txtOriginalRegistrationFee = DetailsViewDetails.FindControl("TextBoxRegistrationFee") 

을보십시오. MsgBox는 Windows 용이며 웹에서는 작동하지 않습니다. 당신은 그 유형의 기능을 위해 자바 스크립트를 사용해야합니다. 또한이 함수는 컨트롤이 아니라 문자열을 사용합니다.

+0

도움을 많이 주셔서 감사합니다. 그것은 작동했습니다 :-) –

+0

우리의 문제를 해결하려고 노력한 다른 모든 사람들에게도 감사드립니다. –

0

나는 VB에서 작동하지 않으므로 나와 곰이 ... 템플릿은 세부 정보보기가 삽입 모드 인 경우에만 렌더링됩니다.

Dim txtOriginalRegistrationFee As TextBox 

If DetailsViewDetails.CurrentMode = DetailsViewMode.Insert Then 
    txtOriginalRegistrationFee = FindControl("TextBoxRegistrationFee") 

    If String.IsNullOrEmpty(txtOriginalRegistrationFee.Text) = False Then 
     MsgBox(txtOriginalRegistrationFee) 
    End If 
End If 
+0

코딩에 감사드립니다. 다음과 같이 편집 모드에있을 때 값을 가져올 수 있습니까 : If DetailsViewDetails.CurrentMode = DetailsViewMode.Edit Then ...? –

+0

삽입 및 편집 모드에서 동일한 텍스트 상자를 사용할 수 있습니다. 두 템플릿 모두에 포함 시키십시오. 답장을 보내 주셔서 감사합니다. – andleer

+0

나는 편집 모드를 시도했지만 여전히 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."오류가 발생합니다. 나는 "New"를 사용해야 할 필요가 있다고 생각하지만 그렇게하는 것을 모른다. txtOriginalRegistrationFee를 새 객체로 만들 때 코드 샘플을 표시 할 수 있습니까? –