2013-02-01 4 views
0

C# 컨트롤러의 그리드에서 값을 가져 오려고합니다. 이것은 이것은 내가 컨트롤러에 내 그리드 값을 전달하려고 어떻게 내 가게 그리드그리드에서 C# 컨트롤러로 값을 가져 오는 방법

Ext.create('Ext.data.Store', { 
    storeId:'store', 
    fields:['name', 'email', 'phone'], 
    proxy: { 
     type: 'memory', 
     reader: { 
      type: 'json', 
      root: 'items' 
     } 
    } 
}); 

Ext.create('Ext.grid.Panel', { 
    store: Ext.data.StoreManager.lookup('store'), 
    columns: [ 
     { text: 'Name', dataIndex: 'name' }, 
     { text: 'Email', dataIndex: 'email', flex: 1 }, 
     { text: 'Phone', dataIndex: 'phone' } 
    ], 
    height: 200, 
    width: 400, 
    renderTo: Ext.getBody() 
}); 

입니다

var records = []; 
this.store.data.each(function(rec) { 
    records.push(rec.data); 
}); 
Ext.Ajax.request({ 
    url: 'mycontroller/read_grid', 
    params: { 
      par1: Ext.encode(records) 
    } 
}) 

내 문제는 내가 업데이트 할 열 휴대 전화에서 모든 값을받을 수 있나요 어떻게 내 SQL 데이터베이스. 어떤 종류의 배열을 사용하거나 데이터베이스에 저장할 "전화"열의 모든 값을 가져 오는 메서드가 있습니까?

답변

2

잘못하고 있습니다. 먼저 모델에 항상 하나의 [idProperty][1] 속성이 있어야하며 항상 모델을 사용해야합니다! 이제 모델을 정의하지 않으면 상점에서 암시 적 모델을 사용하고 idProperty을 정의하지 않은 경우 기본적으로 'id'가됩니다. 이제

의 당신이 모든이 있다고 가정하자 : 당신은 추가하거나 상점에 바인딩 된 해당 유형의 편집 모델 인스턴스 (기록) (추가 또는로드) 당신이 있었다 그 모두를 제출하는 경우 상점에서 sync()으로 전화하여 변경되었거나 (더러운 필드가 있음) 새 것이 었습니다 (팬텀). 프록시는이를 위해 적절한 작성자를 필요로합니다. 이 경우 쓰기를 [allowSingle][2]으로 설정하여 작성자가 레코드의 배열 (목록)을 항상 서버로 다시 보내도록해야합니다. 그렇지 않으면 컨트롤러의 오류를 deserialize하는 데 어려움을 겪을 수 있습니다.

당신이 전화 번호를 보내면 귀하의 경우는 드문 경우입니다. 어떤 전화 번호가 누구에게 속하는지 어떻게 알 수 있습니까? 어쨌든 위와 같이하면 올바른 방법으로 서버에서 사용할 필드를 결정할 수 있습니다.

: 당신은 모델에 프록시를 정의하면 당신이 가게에 다시 같은 를 정의 할 필요가 없습니다.

업데이트

var emails = store.collect('email'); 
Ext.Ajax.request({ 
    url: 'page.php', 
    jsonData: emails, 
    success: function(response){ 
     var text = response.responseText; 
     // process server response here 
    } 
}); 

자세한 내용

+0

I에 대한 collect & request 참조 (안된) 할 수있는 하나의 필드 유형을 취득 해를 보내려면 죄송합니다. sra ... actall y, 내 서버로 보내는 이메일입니다. 기본적으로 이메일 주소가 그리드에 입력되고 제출 버튼을 누르면 그리드의 모든 이메일 주소가 이메일로 전송됩니다. 그래서 여전히 idProperty가 필요합니까? – EagleFox

+1

@EagleFox 확인을 클릭 한 다음 내 편집을 봅니다. 나는 상점이 단지 지역적이라면 엄격히 요구되지 않을 것이라고 생각한다. 내가 추가 한 것을 확인해 보라. 그것이 효과가 있는지 알 것이다. – sra

+0

yes sra ... 고맙습니다. 클라이언트 쪽에서 이메일을받을 수 있습니다. 이제 서버 측에서 어떻게 처리해야합니까? 저는 C#을 사용하여 유감입니다 ... "이메일"개체를 만들려고 시도했습니다. 그런 다음 값을 가져 오지만 null이됩니다. – EagleFox

관련 문제