2011-02-12 45 views
0

在PHP中可以有服务器端脚本打印回使用类似我该如何response.write一段代码?

print <<<HERE 
    <code> 
      <somemorecode></somemorecode> 
    </code> 
HERE; 

什么是ASP当量(C#)一个格式化的代码块?

它似乎并不喜欢当我不把所有的字符串保留在一行,我想避免必须连接所有的东西,因为它会杀死保持格式化的可读性的目的。这就是我所不喜欢的。我知道为什么它这样做,但我想知道如何实现你可以在PHP中:

<% 
     for(int i = 20; i<21;i++){     
     Response.Write(" 
     <tr> 
      <td class="style1"> 
       <asp:DropDownList ID="docNumber" runat="server" /> 
      </td> 
      <td class="style1"> 
       <asp:Label ID="Label1" runat="server" Text="This would be the title of the document." /></td> 
      <td class="style1">#</td> 
      <td class="style1"> 
       <asp:DropDownList ID="supervisorName" runat="server" /> 
      </td>    
     </tr>"); 
%> 

这不是任何人会看到。我只是想为自己建立一个扔掉的数据输入页面。

更新:从不知道...我刚刚意识到这不会为我工作,因为它会重复每个控件ID。失败。

无论如何,以备将来参考。有没有办法做到我想要做的事情,只要代码块去?

+0

[在C#定界符字符串]的可能重复(http://stackoverflow.com/questions/3538484/heredoc-strings-in-c) – BoltClock 2011-02-12 23:34:49

回答

1

你可能会考虑使用<asp:Repeater />为了这个目的:

<asp:Repeater runat="server" id="repeater1"> 
    <HeaderTemplate> 
     <table> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr>      
      <td class="style1"> 
       <asp:DropDownList ID="docNumber" runat="server" /></td> 
      <td class="style1">       
       <asp:Label ID="Label1" runat="server" 
       Text="<%# Container.DataItem("DocTitle") %>"/></td>       
      <td class="style1">#</td> 
      <td class="style1">       
       <asp:DropDownList ID="supervisorName" runat="server" /></td>        
     </tr> 
    </ItemTemplate> 
    <FooterTemplate> 
     </table> 
    </FooterTemplate> 
</asp:Repeater> 

在后面的代码,你会然后绑定此网页加载(或者其它任何合适)的列表或数据源。最后,检查每个项目绑定时自定义处理的ondataitembound操作。

1
<%= Some String Expression Here %>

<% code with Response.Write("some string"); %>

第一是更好,如果你想打印一个语句。如果你有多个表达式打印内容(如果使用循环,if/else等等),则第二种效果会更好。

请记住,这被认为是不好的做法,并且在ASP.NET Web中被压垮了形式世界。你应该使用控件。

如果你想创建一些更复杂的布局,重复某些事情,你应该使用数据绑定控件。对于使用GridView控件的表,使用DropDownList的选项列表以及其他用途的布局使用ListView控件(您也可以将它用于表格)。这些控件为每个项目使用默认格式或模板,并通过后面的代码绑定到项目集合。所有这些都是针对ASP.NET Web窗体的。如果你使用的是ASP.NET MVC,那么事情就会有所不同。

+0

我会到达那里。仍在学习。我试图做的是使用循环打印出一些表行。我想保留html格式,但这里的第二个例子不喜欢当我不把所有的东西放在同一行上 – Sinaesthetic 2011-02-12 23:38:34

+0

我已经更新了答案。 – Stilgar 2011-02-13 00:09:48