2013-12-16 4 views
0

양식에 게시하는 웹 사용자 컨트롤이 있지만 두 번째 사용자 정의 컨트롤 "PageStateTemplate"은 알 수없는 요소로 등록하고 있으며 웹 컨트롤의 실제 코드에서 제목에있는 오류가 표시됩니다. 이것은 "ViewState"가 포함 된 모든 행에 대해 나타납니다. 당신이 보통 페이지에 배치, runat="server"form이 필요하거나 masterpage하지 않는 사용자 정의 컨트롤 내부 있도록 웹 양식에서'System.Web.UI.HtmlControls.HtmlForm'형식의 표현식에 []을 (를) 사용하여 인덱싱을 적용 할 수 없습니다. 웹 사용자 정의 컨트롤이로드되지 않습니다.

<%@ Control Language="C#" AutoEventWireup="true"%> 
<%@ Import Namespace="System" %> 
<%@ Import Namespace="System.ComponentModel" %> 
<%@ Import Namespace="System.Web.UI.WebControls" %> 
<%@ Import Namespace="System.Web.UI" %> 
<%@ Import Namespace="System.Web" %> 
<%@ Import Namespace="System.Collections.Generic" %> 
<%@ Import Namespace="System.IO" %> 
<%@ Import Namespace="TemplateEngine.Docx" %> 
<%@ Import Namespace="DocumentFormat.OpenXml.Packaging" %> 
<%@ Import Namespace="DocumentFormat.OpenXml.Wordprocessing" %> 
<%@ Import Namespace ="FileUpload" %> 


<script runat="server"> 


    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) 
     { 
      string str = "Welcome to Aspdotnet-Suresh Site"; 
     if(ViewState["SampleText"]==null) 
      { 
      ViewState["SampleText"] = str; 
      } 

     } 
    } 

    protected void btnClick_Click(object sender, EventArgs e) 
    { 
    lblString.Text = ViewState["SampleText"].ToString(); 
    } 



</script> 

<form id="ViewState" runat="server"> 
<div> 

ViewState Data: <b><asp:Label ID="lblString" runat="server"/></b> 
<asp:Button ID="btnClick" runat="server" Text="Get ViewState Data" 
onclick="btnClick_Click"/> 

</div> 
</form> 
+1

양식의 ID를 ViewState에서 다른 것으로 변경 한 다음 시도해보십시오. –

+0

이제 "페이지가 하나의 서버 쪽 양식 만 가질 수 있습니다" . 그렇다면 양식이 아니라면 무엇을 만들 수 있습니까? 나는 asp.net에 대해 많이 알지 못한다. 그러나 하나의 형식만으로는 여러 단계의 viewstate를 만들려고하는 것이별로 의미가 없다. – DevAL

+0

@ Alex- 다른 웹 페이지에 넣으십시오 ... 또는 한 페이지 만 사용하려면 패널을 사용하십시오 –

답변

1

는 단지 하나의 속성 runat="server"와 태그 formform 내부의 모든 컨트롤을해야한다

해결하려면 - form 선언을 사용자 정의 컨트롤에서 제거하십시오.