2010-03-17 6 views
4

관련된 클라이언트 쪽 API를 사용하여 ASP.NET 서버 컨트롤을 만들고 있습니다. 내 클라이언트 측 API에서 내 GetScriptDescriptors() 메소드는 내가 "행"라는 속성을 연결하고있어에서ScriptControlDescriptor.AddProperty 및 읽기 전용 속성

...

descriptor.AddProperty("rows", this.IntRows); 

나는 내 "행"속성은 읽기 전용으로 할 .. .

MyControl = function(element) 
{ 
    MyControl.initializeBase(this, [element]); 
    this._rows; 
} 

MyControl.prototype = 
{ 
    initialize: function() 
    { 
     MyControl.callBaseMethod(this, 'initialize'); 
    }, 

    get_rows: function() 
    { 
     return this._rows; 
    }, 

    dispose: function() 
    { 
     MyControl.callBaseMethod(this, 'dispose'); 
    } 
} 

그러나이

Error: Sys.InvalidOperationException: 'rows' is not a writable property.

다음 세터가 요구 될 것으로 보인다 ... 다음 오류가 발생하거나 세터가에서 값을 할당 할 필요가 있다면 읽기 전용 클라이언트 측 API에서 "행"속성을 만들 수있는 방법

set_rows: function(value) 
{ 
    this._rows = value; 
}, 

다음 $에 대한 데르는 "행"할당 문을 만들 수는 초기 값입니다 AddProperty 호출?

답변

0

가장 간단한 방법은 set_rows가 입력을 무시하는 것입니다. 효과적으로이 예외가 발생하는 것을 중지하고 속성에 읽기 전용 기능을 제공해야합니다.

set_rows: function(value) 
{ 
    value = null; 
}, 
+0

답장을 보내 주셔서 감사합니다. 나는 아직 그것을 시험 할 기회가 없었다. 그러나 나는 당신의 견본을 따를 지 모르겠습니다. setter가 호출되면 단순히 "rows"값을 지우지 않을까요? –

+0

@Poz 당신이 옳을 것입니다. 잘못된 옵션을 null로 설정했습니다. 다른 대안은 구현되지 않은 예외를 throw하는 것이지만, 코더가 처리해야합니다. 오히려 조용히 그 세트를 무시합니다. – BinaryMisfit

+0

설명해 주셔서 감사합니다. –