나는 createchildcontrols 메서드에서 여러 가지 리터럴 컨트롤을 렌더링하는 사용자 정의 컨트롤을 사용합니다. 아래와 같이 그때 클래스의 상단에 [ValidationProperty ("myprop을")]에 추가로이 텍스트 박스를 확인하는 시도하고findcontrol을 사용하여 리터럴 콘트롤 내에서 컨트롤 찾기
this.Controls.Add(new LiteralControl(string.Format("<input type=\"text\" style=\"display:none\" value=\"{0}\" id=\"{1}\" name=\"{1}\" />", MediaId.ToString(), this.UniqueID)));
(literalcontrols 다른 라인 여기 uncluded되지 않았다고 추가되고있다) . 기본적으로 텍스트 상자에 입력 된 값에 대해 유효성을 검사해야합니다.
public string myprop
{
get
{
Control ctrl = this.FindControl(this.UniqueID);
string txt = ((TextBox)ctrl).Text;
try
{
MediaId = Convert.ToInt32(txt);
}
catch { MediaId = 0; }
return txt;
}
}
불행하게도의 FindControl 전혀 텍스트 상자를 찾을 수없는 다음과 같이 myprop 속성은 내가 가정, 때문에 지금까지 .NET은 확실히 지금 그것 literalcontrol, 모든
에서가 아니라 텍스트 상자에 관한 한 나는이
TextBox tb = new TextBox();
tb.Text = this.MediaId.ToString();
tb.ID = this.UniqueID;
this.Controls.Add(tb);
하지만 때문에 내가 다른 곳에서 많은 더 많은 물건을 변경해야 할 것 뭐하는 거지의 다른 제한의
.. 을 수행 할을 CreateChildControls을 변화시킬 수findcontrol을 사용하여 리터럴 또는 다른 방법으로 렌더링 된 텍스트 상자를 찾는 방법이 있습니까?
감사
NAT 불행히도의 FindControl 전혀 텍스트 상자를 찾을 수 없습니다 않습니다
하지만 거기에 있지만 그 clientid를 제어 할 수있는 방법이 무엇입니까? – nat
webform 프레임 워크와 관련하여 리터럴 컨트롤의 내용은 텍스트가 아닌 컨트롤로 처리됩니다. –