2011-09-05 2 views
0

내 DeatilView 컨트롤에 InsertItemTemplate이 정의되어 있습니다. 이 템플릿에는 사용자가 채우는 여러 필드와 자동으로 채워지는 여러 필드가있어 사용자가 변경할 수 없습니다. 이 값은 세션에 저장된 객체에서 가져옵니다.
코드는 다음과 같습니다 실제로 데이터베이스에 값을 삽입하기 위해 필요로하는 곳에 (당신은 더 아무것도 필요 알려 경우 난 단지, 필요한 부분을 언급)ASP.NET DetailView InsertItemTemplate

<asp:DetailView ... DataSourceID="MyDataSource" ...> 
    <Fields> 
    ... 
    <InsertItemTemplate> 
     // These are the fields filled by the system 
     <asp:Label ... Text='<%# some value from session object %>' /> 
     <asp:Label ... Text='<%# some value from session object %>' /> 
     // some textboxes here that user fills, 
     //they use Bind("some data source value here") to send their data to database 
     ... 
    </InsertItemTemplate> 
    ... 
    </Fields> 
</asp:DetailView> 

하는 것은 이제 문제입니다.
텍스트 상자 값은 올바르게 전송되지만 레이블 값을 바인딩하지 않았으므로 DataSource로 전송되지 않습니다. 그래서 어떻게해야 하는가?

  • 은 내가 찾은 대안은 데이터 집합의 각각 InsertParameter에의 DefaultValue을 통과했지만, 난 은이 세션에서 값의 수에 그 지역을 기입하는 방법을 모르겠어요.
  • 또 다른 대안은 Session에서 직접 가져온 매개 변수의 값 (기본값이 아님) 을 설정하는 것입니다.이 방법은 가능한 한 값을 Session 내에서 지원하며, 값을 전달합니다. Session에 저장된 객체. 세션 에 값을 직접 저장하는 것 외에 해결 방법이 있습니까?

답변

0

어떤 유형의 데이터 소스를 사용하고 있습니까? 데이터 소스의 유형에 따라 세션에서 매개 변수를 얻는 방법이 거의 없기 때문에이를 알아야합니다.

+0

유형별로 DataSourceMode를 의미하는 경우 아무 것도 지정하지 않았습니다. 기본적으로 DataSet 모드라고 생각합니다. – atoMerz

+0

아니요, SqlDataSource, ObjecDataSource, LinqDataSource 등을 말합니다. – boades

+0

또는 코드 숨김에서 deatails 뷰의 DataSource 객체를 설정 하시겠습니까? – boades

0

detailView_ItemInserting(object sender, DetailsViewInsertEventArgs e)이 데이터를 삽입하기 직전에 호출되면이 이벤트에서 detailView.FindControl 메서드를 사용하여 Label 컨트롤에 액세스 할 수 있습니다.

+0

예, 이미 시도했지만 문제는 MyDataSource.InsertParamers [i]에는 value라는 속성이 없습니다. 그래서 나는 그것의 가치를 규정하는 방법을 모른다. – atoMerz

관련 문제