2009-04-22 77 views
0

我正在編寫一個應用程序,要求我的客戶可以根據自己的選擇佈局輸入表單。ASP控件的HTML模板

我想用用佔位符的HTML模板,然後在運行時用secified .NET控件替換這些:

<table style="width: 100%;"> 
<tr> 
    <td colspan="2"> 
     <fieldset title="Customers Template" > 
      <table style="width:100%;"> 
       <tr> 
        <td width="140"> 
         Policy Number:</td> 
        <td width="150"> 
         $$Policy Number$$</td> 
        <td colspan="2" rowspan="3" valign="top"> 
         Type 1:<br /> 
         $$Type 1$$</td> 
        <td rowspan="3" valign="top"> 
         Info:<br /> 
         $$Info$$</td> 
        <td rowspan="3" valign="top"> 
         Problems:<br /> 
         $$Problems$$</td> 
       </tr>... 

所以我想找到和各種替代我$$ XXX $$文本.NET控件,取決於正在添加的字段的數據類型,在運行時。

有關處理此問題的好方法的任何建議?

謝謝, 馬克

回答

1

<asp:PlaceHolder>控制替換您$$ XXX $$塊。

在運行時可以解析模板

---在最簡單的情況下,可以要求模板是有效的XHTML,那麼你可以簡單地使用.NET的XML API通過所有的childNodes迭代XmlDocument。從每個元素構建相應的ASP.NET服務器控件。

對於更復雜的(和完整的HTML解析器)看到http://www.developer.com/net/csharp/article.php/2230091

正如你解析,無論你看到<asp:PlaceHolder> - 替換成你的邏輯定義模板。

教程:http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=752

+0

創建的HTML模板和供應,創造並控制我的客戶,並在運行時動態加載。動態加載文件時,我認爲asp佔位符將無法在控件集合中正確註冊:-( – 2009-04-22 19:00:01

0

如果你打算只在弦NVelocity template engine看一看替換這些佔位符。 In this answer,我只是簡單說明如何通過模板創建電子郵件。

但對於asp.net服務器控件,您可以分割你的HTML模板成塊,並將其添加到您的網頁LiteralControl這樣的:

Page.Controls.Add(new LiteralControl(@"<td width='140'> 
         Policy Number:</td> 
        <td width='150'>")); 
Page.Controls.Add(textBox1); 
Page.Controls.Add(new LiteralControl(@"</td><td colspan='2' rowspan='3' valign='top'> 
         Type 1:<br />"));