【发布时间】:2010-03-20 21:16:18
【问题描述】:
我能想到的所有方法看起来都非常老套。什么是正确的方法,或者至少是最常见的方法?
我正在从 LINQ-to-SQL 查询中检索一组图像,并将其和一些其他数据数据绑定到转发器。我需要为转发器中的每个项目添加一个文本框,让用户更改每个图像的标题,非常类似于 Flickr。
如何访问中继器控件中的文本框并知道该文本框属于哪个图像?
这是转发器控件的外观,带有一个提交按钮,可以更新 Linq-to-SQL 中的所有图像行:
alt text http://casonclagg.com/layout.jpg
编辑:
此代码有效
只要确保你不会像我一样通过在 if(!Page.IsPostBack) 之外绑定来破坏你的价值观。哎呀。
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div class="itemBox">
<div class="imgclass">
<a title='<%# Eval("Name") %>' href='<%# Eval("Path") %>' rel="gallery">
<img alt='<%# Eval("Name") %>' src='<%# Eval("Path") %>' width="260" />
</a>
</div>
<asp:TextBox ID="TextBox1" Width="230px" runat="server"></asp:TextBox>
</div>
</ItemTemplate>
</asp:Repeater>
并提交点击:
protected void Button1_Click(object sender, EventArgs e)
{
foreach (RepeaterItem item in Repeater1.Items)
{
TextBox txtName = (TextBox)item.FindControl("TextBox1");
if (txtName != null)
{
string val = txtName.Text;
//do something with val
}
}
}
【问题讨论】:
-
您是在回发后尝试访问客户端还是服务器上的文本框?
标签: c# asp.net textbox repeater