Scriptcontrol의 클라이언트 및 서버 측에서 속성을 바인딩 할 수 있습니까? 자바 스크립트에서 속성을 설정할 때 변경 사항이 코드 뒤에 표시 될 수 있으며 코드에서 속성을 설정할 때, 변경 사항은 자바 스크립트에서 볼 수 있습니까? ...Scriptcontrol - 클라이언트 및 서버 속성을 바인딩하십시오.
편집을 내가 ScriptControl에 선언 속성을 설정할 때이 초기 설정되어 있지만 나중에 변경할 때 여전히 이전과 동일 -
나는 위와 같이 작업을 얻을 수 없다 나는 ASP.NET 응용 프로그램에서 긴 포스트 백을 위해 ProgressBar를 수행하려고합니다. 많은 옵션을 시도했지만 아무 것도 작동하지 않습니다 ... 코드에서 진행률 값을 설정하고 긴 태스크 포스트 백 중에 뷰에서 업데이트했습니다. ScriptControl에 대한
코드 : C 번호 :
public class ProgressBar : ScriptControl
{
private const string ProgressBarType = "ProgressBarNamespace.ProgressBar";
public int Value { get; set; }
public int Maximum { get; set; }
protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors()
{
this.Value = 100;
this.Maximum = 90;
var descriptor = new ScriptControlDescriptor(ProgressBarType, this.ClientID);
descriptor.AddProperty("value", this.Value);
descriptor.AddProperty("maximum", this.Maximum);
yield return descriptor;
}
protected override IEnumerable<ScriptReference> GetScriptReferences()
{
yield return new ScriptReference("ProgressBar.cs.js");
}
}
자바 스크립트 :이 진행률 표시 줄을 구현할 수있는 방법을 주셔서 감사합니다
Type.registerNamespace("ProgressBarNamespace");
ProgressBarNamespace.ProgressBar = function(element) {
ProgressBarNamespace.ProgressBar.initializeBase(this, [element]);
this._value = 0;
this._maximum = 100;
};
ProgressBarNamespace.ProgressBar.prototype = {
initialize: function() {
ProgressBarNamespace.ProgressBar.callBaseMethod(this, "initialize");
this._element.Value = this._value;
this._element.Maximum = this._maximum;
this._element.show = function() {
alert(this.Value);
};
},
dispose: function() {
ProgressBarNamespace.ProgressBar.callBaseMethod(this, "dispose");
},
get_value: function() {
return this._value;
},
set_value: function (value) {
if (this._value !== value) {
this._value = value;
this.raisePropertyChanged("value");
}
},
get_maximum: function() {
return this._maximum;
},
set_maximum: function (value) {
if (this._maximum !== value) {
this._maximum = value;
this.raisePropertyChanged("maximum");
}
}
};
ProgressBarNamespace.ProgressBar.registerClass("ProgressBarNamespace.ProgressBar", Sys.UI.Control);
if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
... 개인적으로
나는이 방법을 사용하는 것이 가장 우아한 방법이라고 생각합니다. 나는 궁금해. 너는 그걸 작동하도록 만들었 니? – julealgon