如何从父节点传递值.Aspx页面到用户控制
本文关键字:用户 控制 Aspx 父节点 | 更新日期: 2023-09-27 17:49:30
我在我的应用程序中有以下设置,我有一些困难传递值我的用户控制。
ASPX
<%
var posts = this.getPosts();
foreach (var post in posts)
{ %>
<asp:TextBox runat="server" Text="<%: post.post_id %>" />
<% } %>
c
DataClassesDataContext db = new DataClassesDataContext();
public Post[] getPosts(int offset = 0, int lenght = 10)
{
var resultSet = db.Posts.OrderBy(x => x.date).Skip(offset).Take(lenght).ToArray();
return resultSet;
}
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}
页面加载时的文本框值为"<% post"。post_id %>"。我甚至尝试使用<%# post。post_id %>标签,但会给出一个错误- "名称'post'在当前上下文中不存在"。
有什么建议吗?
我建议在您的标记代码中移动到重复器控件而不是使用内联c#。或者,您可以尝试使用Eval(尽管,不确定它是否适用于此):
<asp:TextBox runat="server" Text="<%# Eval("post.post_id") %>" />
数据绑定表达式语法( <%# ... %>
)只能绑定到page类上的成员。post
变量不能以这种方式访问。
你可以添加一个currentPost
字段到你的.CS文件,然后这样做:
<%
var posts = this.getPosts();
foreach (var post in posts)
{
this.currentPost = post;
DataBind();
%>
<asp:TextBox runat="server" Text="<%# currentPost.post_id %>" />
<% } %>
你试过<%= post吗?post_id %>吗?