2012-10-09 3 views
3

아래와 같이 ObjectDataSource를 사용합니다. asp.net ObjectDataSource에서 System.Web.UI.Page 개체에 액세스하는 방법

<asp:ObjectDataSource ID="Item" runat="server" 
       SelectMethod="Grid_DataBind" TypeName="XXX.XXX.XXX" 
       DataObjectTypeName="Controller.Items" UpdateMethod="UpdateRow_Grid" 
       InsertMethod="InsertRow_Grid"> 

는하여 InsertMethod 화재, 모든 그것은 내 영문 파일에 표시됩니다 내 라벨 객체를 모르는 ...

public IList<Items> InsertRow_Grid(Items item) 
    { 
     item.ID = System.Guid.NewGuid().ToString();   
     bool contains = GridSource.AsEnumerable() 
         .Any(row => item.JobID == row.JobID); 
     if (!contains) 
     { 
      GridSource.Add(item);    
     } 
     else 
     {    
      lblMsg.Text= "This record has already exists.";    
     } 
     return GridSource; 
    } 

잘 작동하지만합니다.

enter image description here

내가 적절한 솔루션을 검색 할 수 있도록 내가 this을 읽을 수 있었다.

하지만 여전히 방법을 모르겠다.

모든 제안을 부탁드립니다.

+0

:이 코드? 같은 문제를 일으키는 aspx 콘텐츠를 작성하십시오. – mrd

+0

컨트롤 "lblMsg"를 만들기 위해 aspx를 공유하십시오. –

답변

-1

당신은 당신의 페이지에이 코드를 추가 할 수 있습니다

이 ASP가 있기 때문이다
... 
<asp:Label id="lblMsg" runat="server"/> 
<asp:ObjectDataSource ID="Item" runat="server" 
      SelectMethod="Grid_DataBind" TypeName="XXX.XXX.XXX" 
      DataObjectTypeName="Controller.Items" UpdateMethod="UpdateRow_Grid" 
      InsertMethod="InsertRow_Grid"> 
..... 
1

: ObjectDataSource를 당신이에 지정된 객체의 새로운 인스턴스를 생성합니다 "유형 이름"속성 대신 새로운 창조의 현재 페이지 객체를 사용하려면, 당신이 필요로하는 를 Page_Load에서

YourObjectDataSource.ObjectCreating += (s, a) => { a.ObjectInstance = this; }; 

장소 그것을 또는 어디 lblMsg 제어, 내부 격자를 사용 후 Page_Init

관련 문제