다음 코드를 고려 그것에 추가 된 제어 발견되지 않습니다Panel.FindControl() 메소드 (죄송) 동일한 ID 2 텍스트 박스를 추가
protected void Page_Load(object sender, EventArgs e)
{
string TextBoxName = "TextBox1";
Panel p = new Panel();
TextBox t = new TextBox();
t.ID = TextBoxName;
p.Controls.Add(t);
if (p.FindControl(TextBoxName) == null) // <-------*******
{
TextBox t2 = new TextBox();
t2.ID = TextBoxName;
p.Controls.Add(t2);
}
Page.Form.Controls.Add(p);
}
코드가 정지하도록 설계 동일한 ID를 두 번 더합니다. 그러나 Panel.FindControl()
메서드는 이전 코드 줄에 추가 된 컨트롤을 찾지 못했습니다.
이 방법을 잘못 사용하고 있습니까?
string TextBoxName = "TextBox1";
Panel p = new Panel();
TextBox t = new TextBox();
t.ID = TextBoxName;
p.Controls.Add(t);
TextBox t2 = new TextBox();
t2.ID = TextBoxName;
bool duplicateFound = false;
foreach(Control c in p.Controls)
{
if(c.ID == TextBoxName)
{
duplicateFound = true;
break;
}
}
if(duplicateFound)
{
t2.ID = TextBoxName + "__0";
p.Controls.Add(t2);
}
하지만이 작동하지 않는 이유는 Placeholder
컨트롤과 UserControl
반면, 이해가 안 : 나는 수동처럼 다음 수준의 컨트롤을 반복 할 수 - 확인 -
는 말은 괜찮아.
내가 Panel
을 사용하는 이유는 CSS 스타일링 때문입니다. body> div> 입력 -하지만 여전히 작동하지 않습니다.
예 두 번째 예제에서는 2가, 첫 번째 예제에서는 1이 약간 씩 비례합니다. 내 강조는 Panel.FindControl() 작동하지 않습니다 .. –