在php中,您可以让服务器端脚本使用类似
之类的内容打印一段格式化代码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>");
%>
这不是任何人都会看到的。我只是想为自己建立一个丢弃的数据输入页面。
update:nevermind ...我刚刚意识到这对我不起作用,因为它会复制每个控件ID。失败。
无论如何,以备将来参考。有没有办法在代码块出现时做我想做的事情?
答案 0 :(得分:1)
<%= Some String Expression Here %>
或
<% code with Response.Write("some string"); %>
如果要打印单个语句,第一个更好。如果你有多个打印东西的表达式(如果你使用循环,if / else等等),第二个会更好。
请记住,这被认为是不好的做法,并且在ASP.NET Web Forms世界中不受欢迎。你应该使用控件。
如果你想创建一些更复杂的布局,重复一些你应该使用数据绑定控件。对于表使用GridView控件,对于使用DropDownList的选项列表,对于其他使用布局使用ListView控件(您也可以将它用于表)。这些控件使用每个项目的默认格式或模板,并通过后面的代码绑定到项目集合。这一切都适用于ASP.NET Web窗体。如果您使用的是ASP.NET MVC,则会采用不同的方式。
答案 1 :(得分: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动作,以便在绑定时自定义处理每个项目。