Repeater中如何获取Textbox 的值和对应的ID

macsales 2009-01-14 03:47:08
HTML CODE

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:Repeater>

C# CODE

// 绑定 Repeater1,假如有 10 条记录
mySql = "select id,title from tb1";
...
Repeater1.DataBind();

问题:用户在界面中改变了任意一个 TextBox 值的时候,如何取到用户输入的值和对应的 TextBox 的 id (也就是用户正在操作 10 个中的哪一个)
...全文
399 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baibushan 2010-03-03
  • 打赏
  • 举报
回复
<asp:Repeater ID="Repeater1" OnItemCommand="GetRepeaterText" runat="server">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"> </asp:TextBox>
</ItemTemplate>
</asp:Repeater>

protected void GetRepeaterText(object sender, RepeaterCommandEventArgs e)
{
TextBox tb = e.Item.FindControl("TextBox1") as TextBox;
string str = tb.Text;
}
macsales 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zglover 的回复:]
<asp:TextBox ID="TextBox1" runat="server"> </asp:TextBox>
可以在这个控件上添加个OnTextChanged事件,通过内容发生改变来取
[/Quote]

我刚开始的时候,也是这样想的

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Response.Write(TextBox1.Text) ;
}

但是在编译的时候,就会提示:TextBox1 在上下文是中不存在的。
ReyZhang 2009-01-14
  • 打赏
  • 举报
回复
ls讲的都很明白了
rascalwm 2009-01-14
  • 打赏
  • 举报
回复
用findControl 找到那个TextBox
oec2003 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 macsales 的帖子:]

问题:用户在界面中改变了任意一个 TextBox 值的时候,如何取到用户输入的值和对应的 TextBox 的 id (也就是用户正在操作 10 个中的哪一个)

[/Quote]
<asp:TextBox ID="TextBox1" runat="server" onchange="changeValue(this)"> </asp:TextBox>

function changeValue(o)
{
var value=o.value;
//1可以用ajax去修改文本框的值

//2将文本框的值用参数的方式提交到本页
}

路人乙e 2009-01-14
  • 打赏
  • 举报
回复
这样的操作当然要循环获取每一个
oec2003 2009-01-14
  • 打赏
  • 举报
回复

protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
TextBox tb= e.Item.FindControl("tb") as TextBox ;
tb.Text= "...";
}
}


jimu8130 2009-01-14
  • 打赏
  • 举报
回复
通常来说1楼的方法容易造成回发导致页面刷新,当然也可以用ajax来避免

建议使用javascript来做,可在itemdatabound事件中对

TextBox tbx =(TextBox)e.item.findcontrol("TextBox1");
tbx.attributes.add("onchange","ChangeHandler(this)");


jiang_jiajia10 2009-01-14
  • 打赏
  • 举报
回复
TextBox tbx =(TextBox)e.item.findcontrol("TextBox1");
tbx.Text=//值
tbx.id=//id
zglover 2009-01-14
  • 打赏
  • 举报
回复
<asp:TextBox ID="TextBox1" runat="server"> </asp:TextBox>
可以在这个控件上添加个OnTextChanged事件,通过内容发生改变来取

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧