저는 ASP.NET에서 새로운 기능을 가지고 있으며, 나는 길을 잃어 버렸고 올바른 접근 방법을 모르고 있습니다.포스트 백 이후에 codebehind에서 생성 된 htmlControls에 액세스하십시오.
매우 큰 형태로, 나는 입력 필드가 많은 테이블을 렌더링 중입니다. 나는 TBODY에 액세스하고, TD의 및 입력이 같은 방법과 TR 렌더링 코드 숨김에서
<tbody runat="server" id="a2_tbody" ></tbody>
:
private void generateA2TableRows(int num_rows, HtmlGenericControl parent) {
for(int i=0; i<num_rows; i++){
string ctrlName = String.Empty;
TableRow tr = new TableRow();
TableCell c_designacao = new TableCell();
HtmlInputText i_designacao = new HtmlInputText("text");
ctrlName = "a2_designacao_" + i;
i_designacao.ID = ctrlName;
i_designacao.Name = ctrlName;
i_designacao.Attributes.Add("class", "validate[custom[blackList]]");
c_designacao.Controls.Add(i_designacao);
tr.Controls.Add(c_designacao);
TableCell c_ss = new TableCell();
HtmlSelect seg_social = new HtmlSelect();
ctrlName = "a2_seg_social_" + i;
seg_social.Items.Insert(0, "Selecione");
seg_social.SelectedIndex = 0;
seg_social.Items.Insert(1,"Sim");
seg_social.Items.Insert(2,"Não");
seg_social.ID = ctrlName;
seg_social.Name = ctrlName;
c_ss.Controls.Add(seg_social);
tr.Controls.Add(c_ss);
TableCell c_n_utentes = new TableCell();
HtmlInputText i_n_utentes = new HtmlInputText("text");
i_n_utentes.Attributes.Add("class", "validate[custom[onlyPositiveNumbers]]");
ctrlName = "a2_n_utentes_" + i;
i_n_utentes.ID = ctrlName;
i_n_utentes.Name = ctrlName;
c_n_utentes.Controls.Add(i_n_utentes);
tr.Controls.Add(c_n_utentes);
parent.Controls.Add(tr);
}
}
를하지만 지금 내가 액세스해야 영문에서
나는이 있습니다 유효성 확인 및 기타 처리를위한 모든 입력 나는이 방법을 시도 해왔다.
이 글은 내가 aspx에 쓴 htmlControls만을 반환한다.
foreach (Control ctrl in Form.Controls) {
if (ctrl is HtmlControl)
{
HtmlControl htmlCtrl = ctrl as HtmlControl;
Response.Write("ID: " + htmlCtrl.ID + " CLASS = " + htmlCtrl.Attributes["class"] +" type = "+ htmlCtrl.GetType() + "<br/>");
}
}
이 방식으로 렌더링 된 요소를 얻을 수 있지만 이름 만 가져옵니다. 요소의 ID를 재구성하려고 시도했지만 FindControl 메서드를 사용했지만 "Form"이 요소를 반환하지 않습니다.
foreach (Object formObj in Request.Form) {
string formObjID = formObj.ToString().Replace("$", "_");
Control ctrl = Form.FindControl(formObjID);
}
누구나 나를이 사람으로부터 떼어 낼 수 있습니까? 주된 목적은 실제로 렌더링 된 요소에 액세스하여 데이터의 유효성을 검사하고 데이터를 XML로 serialize하는 것이고 이것이 올바른 접근 방식인지 여부를 실제로 알지 못합니다.
미리 감사드립니다.
미안하지만 이것은 실제로 asp.net에 대한 올바른 접근법이 아닙니다. 먼저 튜토리얼을 듣고 싶을 수도 있습니다. 하지만 ok, 왜 당신이 입력 textfields 예를 들어 List (텍스트 상자) 또는 List (HtmlInputText) (내가 왜 사용하지 않는지 이해할 수 없음) – Luke
gridview 원하는대로 할 것이라고 기억하지 훨씬 쉬운 방법 – Luke