간단한 질문이지만 그것에 관해서 아무것도 찾을 수 없다. asp의 내용을 얻는 것이 가능하다 : placeholder? 가능한 경우 서버 측에서 작업하는 것이 좋습니다.asp : placeholder contents to string
누가 복음
간단한 질문이지만 그것에 관해서 아무것도 찾을 수 없다. asp의 내용을 얻는 것이 가능하다 : placeholder? 가능한 경우 서버 측에서 작업하는 것이 좋습니다.asp : placeholder contents to string
누가 복음
당신은 단지 자리의 텍스트 내용하려면 다음
string textualContent = ((LiteralControl) PlaceHolder1.Controls[0]).Text;
반환 "Hello World"
에 대한 :
<asp:PlaceHolder ID="PlaceHolder1" runat="server">Hello World</asp:PlaceHolder>
html로 된 컨트롤을 렌더링 (그리고 모두의 아이 컨트롤) :
System.IO.TextWriter tw = new System.IO.StringWriter();
HtmlTextWriter h = new HtmlTextWriter(tw);
PlaceHolder1.RenderControl(h);
string html = tw.ToString();
이 영문의 경우
합니다 (GridView
는 일부 sameple 데이터와 데이터 바인딩됩니다) :
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<asp:Label ID="LblTest" runat="server">Test-Label</asp:Label>
<asp:TextBox ID="TxtTest" runat="server" Text="Foo"></asp:TextBox>
<asp:GridView runat="server" ID="GridView1"></asp:GridView>
<textarea name="TextArea1" rows="2" cols="1">
First line
Second line
</textarea>
</asp:PlaceHolder>
이 HTML은 (생성 된 브라우저에 의존한다) : 당신이
,746,132에 페이지 지시문을 변경해야<span id="MainContent_LblTest">Test-Label</span><input name="ctl00$MainContent$TxtTest" type="text" value="Foo" id="MainContent_TxtTest" /><div>
<table cellspacing="0" rules="all" border="1" id="MainContent_GridView1" style="border-collapse:collapse;">
<tr>
<th scope="col">ID</th><th scope="col">Text</th>
</tr><tr>
<td>1</td><td>Row #1</td>
</tr><tr>
<td>2</td><td>Row #2</td>
</tr><tr>
<td>3</td><td>Row #3</td>
</tr><tr>
<td>4</td><td>Row #4</td>
</tr><tr>
<td>5</td><td>Row #5</td>
</tr>
</table>
</div>
<textarea name="TextArea1" rows="2" cols="1">
First line
Second line
</textarea>
주 수동으로 RenderControl
를 호출 할 때와
(10)는 Page
public override void VerifyRenderingInServerForm(Control control)
{
/* Confirms that an HtmlForm control is rendered for the specified ASP.NET
server control at run time. */
}
에 VerifyRenderingInServerForm
를 오버라이드 (override)합니다.
Excellent, bookmarked :) – clamchoda
VerifyRenderingInServerForm의 재정의에 아무 것도 추가해야 작동합니까? 현재 내 리피터 컨트롤이 작동하지 않습니까? –
@LukeWilkinson : 아니, "작동하지 않는다"는 것은 무엇을 의미합니까? –
는 Placeholder
의 RenderControl
방법을 사용해보십시오.
나는 HyperLink
에 대해 이렇게했지만, Placeholder
은 System.Web.UI.Control
에서 상속됩니다. 정확하게 동일해야합니다. 이런 식으로 뭔가 :이 주제에 대한 짧은 기사를 작성했습니다
StringBuilder sb = new System.Text.StringBuilder();
using (var stringWriter = new System.IO.StringWriter(sb))
{
using (var htmlTextWriter = new System.Web.UI.HtmlTextWriter(stringWriter))
{
YourPlaceHolder.RenderControl(htmlTextWriter);
}
}
return sb.ToString();
의미는 무엇입니까? "asp의 내용 : 문자열에 대한 자리 표시 자"_? genrated html을 원하십니까? 아니면 서버 측에 자리 표시 자의 텍스트 내용을 원하십니까? –