我正在编写一个 asp.net 用户控件。它有一个属性FurtherReadingPage 和两个与其绑定的控件:ObjectDataSource 和Repeater。在中继器内,我想显示一个超链接,其 href 属性设置为类似FurtherReadingPage + "?id=" + Eval("Id")
。我不知道如何在页面标记内执行此操作。我可以用<% Eval("Id") %>
or <% Response.Write(FurtherReadingPage + "?id=") %>
单独但我不知道如何混合它们。
您有几个不同的标签:
<%
执行里面的代码:
<% int id = int.Parse(Request["id"]); %>
<%=
写出里面的代码:
<%=id %> <!-- note no ; -->
<!-- this is shorthand for: -->
<% Response.Write(id); %>
当在页面上呈现时,这两者都会破坏正常的流程,例如,如果您在正常的 Asp.net 中使用它们<head runat="server">
你会遇到问题。
<%#
数据绑定:
<%# Eval("id") %>
这允许您指定 Asp.net WebForms 呈现为集合的控件的绑定(而不是您可以使用的文字控件)<%=
与),例如:
<!-- this could be inside a repeater or another control -->
<asp:Hyperlink runat="server" ID="demo"
NavigateUrl="page.aspx?id=<%# Eval("id") %>" />
<% //without this bind the <%# will be ignored
void Page_Load( object sender, EventArgs e ) {
demo.DataBind();
//or
repeaterWithManyLinks.DataBind();
}
%>
对于您的具体情况,您可以:
- 使用中继器和
<%# Eval(...) %>
with repeater.DataBind();
or
- 使用 foreach 循环 (
<% foreach(... %>
) with <%= ... %>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)