방금이 건물을 MVC 프레임 워크 용 TextBox 컨트롤에 연결했습니다.이 컨트롤은 전체 문서를 마무리하기 전에 ServerTag에서 상속 한 모든 항목에 대해 PreRender를 호출합니다 (DOMElement에서 상속).PHP에서 DOMElement-> tagName 속성을 변경하는 더 좋은 방법이 있습니까?
DOMElement 파생 된 개체의 tagName을 변경하는 유일한 방법은 이전 속성에 동기화 된 모든 특성이있는 새 개체로 바꾸는 것입니다.
이 그 코드에 모습입니다 :
protected function PreRenderTextarea(WebPage $sender)
{
$textarea = $sender->createElement('textarea');
foreach($this->attributes as $attribute)
{
if ($attribute->name == 'value')
{
$textarea->nodeValue = $attribute->value;
}
else
{
$textarea->setAttribute($attribute->name, $attribute->value);
}
}
$this->parentNode->replaceChild($textarea, $this);
}
public function OnPreRender(WebPage $sender)
{
parent::OnPreRender();
$this->setAttribute('value', $this->Value);
switch($this->Mode)
{
case 'normal' :
$this->setAttribute('type', 'text');
break;
case 'password' :
$this->setAttribute('type', 'password');
break;
case 'multiline' :
$this->PreRenderTextarea($sender);
return;
break;
}
}
정말 유일한 방법은 그것을 할인가요? 이 방법은 컨트롤 뒤에 모든 로직을 nulling하는 원치 않는 부작용이 있습니다.
그건 내가 생각한 것 같아. 비록 내가 그런 식으로 작동한다고 생각하지 않더라도. – Kris