2017-11-13 29 views
0

UpdatePanelsCheckBox<a> 링크를 각각 추가하려고합니다. 링크를 클릭하면 옆에있는 해당 CheckBox을 확인하고 싶습니다. HTML이 제대로 표시되도록 할 수는 있지만 UpdatePanel & 컨트롤이 백엔드와 통신하는 데 문제가 있습니다.ASP.NET UpdatePanel 및 웹 컨트롤이 포함 된 동적 HTML을 aspx 페이지에 추가하십시오. 웹 컨트롤 업데이트 기타 컨트롤 OnClick

메인 마스터 페이지가 있는데, 메인 마스터 페이지 안에 두 번째 마스터 페이지가 있습니다. 그런 다음 하위 페이지 인 마스터 페이지에서 작업하고있는 콘텐츠 페이지입니다. 주 메인 페이지에 ScriptManager가 EnablePartialRendering="True"으로 있습니다. asp.net의 CS1061 기본적으로 내 컨트롤이 UpdatePanel가 동적

뒤에 코드에서 내가 포함하도록 만드는거야이 섹션의 양을 내 기능을 찾는되지 않음을 의미 :

나는이 오류 데이터베이스의 결과 수에 따라 달라집니다.

<asp:Content ID="aBody" ContentPlaceHolderID="aContent" runat="server"> 
    <div id="caJumbotron" class="jumbotron aJumbotron" runat="server" > 
     <asp:Label ID="auditsTable" runat="server" Text="" /> 
    </div> 
</asp:Content> 

aspx.cs : :이 ASP.NETs을 활용 할 시도하고

자바 스크립트

에 의존하지 않고 aspx 페이지 기능을 HTML 코드를 루프 내부에

HTML += "<div class='row caSectionRow'>" + 
      "<div class='col-md-6'>" + 
       "<asp:UpdatePanel runat='server'>" + 
        "<ContentTemplate>" + 
         "<input type='checkbox' class='caCheckbox' name='" + dt.Rows[i]["NAME"].ToString() + "' id='" + dt.Rows[i]["ID"].ToString() + "' value='" + dt.Rows[i]["ID"].ToString() + "' > " + 
         "<a href='' class='caLink' OnClick ='AuditLinkClick' runat='server' >" + dt.Rows[i]["NAME"].ToString() + "</a>" + 
        "</ContentTemplate>" + 
       "</asp:UpdatePanel>" + 
      "</div>"; //Insert column data 

그런 다음 동적 HTML 삽입 라벨 내부 :

auditsTable.Text = HTML; 

마지막 질문은 ... 링크의 OnClick을 만들고 싶습니다. Checkend 할 CheckBox를 업데이트합니다. 그러나 체크 박스에는 동적 ID가 있고 기능에 대한 발신자는 링크가됩니다. 클릭 한 링크와 동일한 UpdatePanel 내의 CheckBox를 어떻게 확인할 수 있습니까?

private void AuditLinkClick(object sender, EventArgs e) 
    { 
     Response.Write("HERE<br/>"); 
     //Link is what sent us here 
     CheckBox btn = (CheckBox)sender; 
     string id = btn.ID; 
     btn.Checked = true; 
    } 

감사합니다.

+0

. 그것은 결코 작동하지 않을 것입니다. REAL 컨트롤을 만들어서 자리 표시 자에 추가해야합니다. – VDWWD

+0

확인.나는 이것을 문자열로 추가하지 않고 이것을 이해하고 작업 할 것이라고 생각한다. 이 방법은 한 번 시도했지만 UpdatePanel을 추가하는 방법을 혼란스럽게합니다. 업데이트를 추가하면 UpdatePanel이 끝나는 시점을 어떻게 구별 할 수 있습니까? –

+0

다시 한번, 하나의 UpdatePanel을 사용하여 나머지 부분을 컨트롤에 추가해야합니다 ... –

답변

0

@VDWWD가 주석에 올 바르고 (감사합니다!). 동적 컨트롤을 페이지에 문자열로 추가 할 수 없습니다. 나는 뒤에 코드에서

<asp:UpdatePanel ID="UpdatePanelCheckBoxes" runat="server"> 
    <ContentTemplate> 
     <asp:Panel ID="caPanel" runat="server"></asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel> 

:

내가 추가하고 동적 모든 데이터를 보유 할 Panel와 프런트 엔드에서 하나의 UpdatePanel을 넣어 : 이것은 내가 무슨 짓을하고 내가 고장 방법입니다 다시이 빨리 발견의 날 개최 나는 C를 추가 할 Panel를 사용하여 마스터 페이지를 사용하고 필요로하고있어 사실이었다 그

caPanel.Controls.Add(new LiteralControl("<div class='col-md-6'>")); 

CheckBox aCheckBox = new CheckBox(); 
aCheckBox.ID = dt.Rows[i]["ID"].ToString(); 
caPanel.Controls.Add(aCheckBox); 

Button checkboxButton = new Button(); 
checkboxButton.ID = "Button"+dt.Rows[i]["ID"].ToString(); 
checkboxButton.Text = dt.Rows[i]["NAME"].ToString(); 
checkboxButton.CssClass = "caButton"; 
checkboxButton.Click += new EventHandler(ALinkClick); 
caPanel.Controls.Add(checkboxButton); 

caPanel.Controls.Add(new LiteralControl("</div>")); 

한 가지 :에 의해 주위 <div>의 각 컨트롤과 프레임 워크를 추가 ontrols에. 오류가 발생했습니다 [HttpException (0x80004005) : 'TextBox'유형의 컨트롤 'ctl00_TextBox1'이 (가) runat = server가있는 양식 태그 안에 있어야합니다. Panel을 사용할 때까지.

이 답변이 도움이 : 당신은 문자열을 작성하여 페이지에 동적 컨트롤을 추가하려고 Control 'ctl00_TextBox1' of type 'TextBox' must be placed inside a form tag with runat=server