2010-01-09 4 views
1

System.Web.UI.Control에서 상속하며 asp.net 서버 쪽 컨트롤 대신 일반 HTML 컨트롤이 포함 된 컨트롤이 있습니다. Page.Request.Form [Control_id]를 사용하여 컨트롤 중 하나의 값을 가져옵니다. 이 기본적으로 작동합니다 gridview 해당 contaiins 이러한 사용자 지정 컨트롤의 열 및 새 행 [row6] 추가하고 위의 tht 행 [row3]에서 행을 삭제할 경우 새 행 [row6 될 row5] 바로 위에있는 행의 값을 가정합니다 [row5 becomeming row4].ASP.NET 사용자 지정 컨트롤 및 Page.Request.Form []

Page.Request.Form []을 사용하여 각 컨트롤의 값을 가져 왔지만 이전에 동일한 행을 사용하고 있던 컨트롤에 해당 컨트롤이 속한 것을 컨트롤에서 알 수 없었기 때문에이 사실을 알았습니다. 이 문제를 어떻게 해결할 수 있습니까? 나는 어떤 제안이라도 aprreciate 할 것이다!!

+2

힘든 시간을 보게됩니다. 이것을 편집하고 질문을 뒷받침하는 코드를 추가 할 수 있습니까? 감사. –

답변

0

Page.Request.Form 컬렉션을 엉망으로 만들 필요가 없습니다. 필요한 것은 적절한 복합 컨트롤입니다. 다음은 간단한 예입니다.

public class InputTextWithLabelControl : CompositeControl { 

    HtmlGenericControl _label; 
    HtmlInputText _text; 

    public string Label { 
    get { 
     EnsureChildControls(); 
     return _label.InnerText; 
    } 
    set { 
     EnsureChildControls(); 
     _label.InnerText = value; 
    } 
    } 

    public string Text { 
    get { 
     EnsureChildControls(); 
     return _text.Value; 
    } 
    set { 
     EnsureChildControls(); 
     _text.Value = value; 
    } 
    } 

    protected override void CreateChildControls() { 
    Controls.Clear(); 

    _label = new HtmlGenericControl("span"); 
    _label.ID = "label"; 

    _text = new HtmlInputText(); 
    _text.ID = "text"; 

    Controls.Add(_label); 
    Controls.Add(_text); 
    } 

} 
관련 문제