2013-10-24 3 views
0

는 내가 HtmlTable을하고 난 여기 예를 들어RegisterForEventValidation는

이다, 그러므로 나는이 재정의 된 메서드에의 TextInput을 등록하고자하는

EnableEventValidation="false" 

을 설정하지 않고, 그것에서 innerHTML을 얻을 필요

<table id="Table1" runat="server"> 
    <tr> 
     <td> 
     </td> 
     <td> 
      <span>Comments</span> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Write som text in the field 
     </td> 
     <td> 
      <input id="Text1" type="text" runat="server"></td> 
     <td> 
      </td> 
    </tr> 
</table> 
<asp:Button ID="submit" runat="server" Text="Button" onclick="submit_Click" /> 

입력 Text1을 제거하면 정상적으로 작동하지만.

그리고 코드 숨김.

public override void RenderControl(HtmlTextWriter writer) 
     { 
      Page.ClientScript.RegisterForEventValidation(Text1.UniqueID); 
      base.RenderControl(writer); 
     } 

     protected void submit_Click(object sender, EventArgs e) 
     { 
      StringWriter sw = new StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
      Table1.RenderControl(htw); 

      string g = sw.ToString(); //Here i want the innerhtml 
     } 

나는 여전히 동안라고도 함) (렌더링 할 수

RegisterForEventValidation을 받고 여러 diffrent 솔루션하지만 메신저를 시도했습니다;

이이 EnableEventValidation="false"을 설정하지 않고 을 수행 할 수있는 방법을 어떤 생각?

답변

0

그래서 runat = "server"속성을 제거하여 문제의 해결 방법을 수행했습니다. 그리고 이제 im은 userinput으로 완성 된 테이블의 innerhtml을 얻습니다. 여기에 변화가 있습니다.

<table id="Table1" runat="server"> 
     <tr> 
      <td> 
      </td> 
      <td> 
       <span>Comments</span> 
      </td> 
     </tr> 
     <tr> 
      <td> 
      Write som text in the field 
     </td> 
     <td> 
      <input id="Text1" name="Text1" type="text" value="<%=ServerValue %>"></td> 
     <td> 
       </td> 
     </tr> 
    </table> 
    <asp:Button ID="submit" runat="server" Text="Button" onclick="submit_Click" /> 

runat = "server"가 없어지고 값이 바인드됩니다.

public string ServerValue = String.Empty; 
     protected void submit_Click(object sender, EventArgs e) 
     { 
      StringWriter sw = new StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
      ServerValue = String.Format("{0}", Request.Form["Text1"]); 
      Table1.RenderControl(htw); 

      var g = sw.ToString();// here is the whole innerhtml of the table 
     }