|zyciis| 在Repeater的ItemTemplate中,如何一个js如何最快得到里面的一个控件的ID

zyciis310 2009-04-27 11:08:23

<asp:Repeater ID="rptRecprd" runat="server" OnItemDataBound="rptRecprd_ItemDataBound">
<ItemTemplate>
<tr>
<td align="left" class="mytd">
<asp:TextBox ID="txtSrc" Width="200" runat="server" CssClass="txtChn" Text='' />
<script>alert('我的ID是' + ???)</script>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>

如上面的 HTML,如果不是在绑定列中的话我们可以用<%=txtSrc.ID %>
但在绑定列中要怎么做呢

谢谢
...全文
168 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
RHCL 2009-04-28
  • 打赏
  • 举报
回复
getelementsByTagName==>getElementsByTagName
RHCL 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zyciis310 的回复:]
我就想不要在cs中写代码,而只在这个ItemTemplate中写
谢谢
[/Quote]
那你就直接用js遍历吧.

var list=new Array();
var listIpt=document.getelementsByTagName("input");
function SelAll()
{
for(var i=0;i<listIpt.length;i++)
{
list[i]=listIpt.id;
}
}

阿非 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 zyciis310 的帖子:]
HTML code
<asp:Repeater ID="rptRecprd" runat="server" OnItemDataBound="rptRecprd_ItemDataBound">
<ItemTemplate>
<tr>
<td align="left" class="mytd">
<asp:TextBox ID="txtSrc" Width="200" runat="server" CssClass="txtChn" Text='' />
<script>alert('我的ID是' + ???)</script>

[/Quote]



<asp:Repeater ID="rptRecprd" runat="server" OnItemDataBound="rptRecprd_ItemDataBound">
<ItemTemplate>
<tr>
<td align="left" class="mytd">
<asp:TextBox ID="txtSrc" Width="200" runat="server" CssClass="txtChn" Text='' />
<script>alert('我的ID是'+'<%# ((sender as DataBoundLiteralControl).FindControl("txtSrc") as TextBox).ClientID %>');</script> </td>
</tr>
</ItemTemplate>
</asp:Repeater>


我姓区不姓区 2009-04-28
  • 打赏
  • 举报
回复
变通一下:

<span id="span<%# Container.ItemIndex %>">
<asp:TextBox ID="txtSrc" Width="200" runat="server" CssClass="txtChn" Text='' />
</span>

<script>
alert(document.getElementById("span<%# Container.ItemIndex %>").getElementsByTagName("input")[0].id);
</script>

zyciis310 2009-04-28
  • 打赏
  • 举报
回复
UP
听风说话 2009-04-27
  • 打赏
  • 举报
回复
路过的给你顶一下啊,我还是个菜鸟
zyciis310 2009-04-27
  • 打赏
  • 举报
回复
我就想不要在cs中写代码,而只在这个ItemTemplate中写
谢谢
yangqidong 2009-04-27
  • 打赏
  • 举报
回复
开始没注意是Repeater,下面这样看起来更直观,每个文本框显示自己的ID

<table>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"
onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<tr>
<td align="left" class="mytd">
<asp:TextBox ID="txtSrc" Width="200" runat="server" CssClass="txtChn" Text='' />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>

设置Repeater1的ItemDataBound事件
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
TextBox txt = e.Item.FindControl("txtSrc") as TextBox;
txt.Text = "我的ID是" + txt.ClientID;
}
zyciis310 2009-04-27
  • 打赏
  • 举报
回复

<asp:Repeater ID="rptRecprd" runat="server" OnItemDataBound="rptRecprd_ItemDataBound">
<ItemTemplate>
<tr>
<td align="left" class="mytd">
<asp:TextBox ID="txtSrc" Width="200" runat="server" CssClass="txtChn" Text='' />
<script>alert('我的ID是' + <%# (gvDepartment.Rows[Container.DataItemIndex].FindControl("btnDelete") as LinkButton).ClientID %>)</script>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>


为什么这样不行呢
HDNGO 2009-04-27
  • 打赏
  • 举报
回复
后台绑定的时候把ID绑到里边就好了吧~
yangqidong 2009-04-27
  • 打赏
  • 举报
回复
public string firstRowId;
protected void Page_Load(object sender, EventArgs e)
{
firstRowId = (GridView1.Rows[1].FindControl("txtSrc") as TextBox).ClientID;
}


<input type="button" value="看第一行ID" onclick="alert('<%=firstId %>')" />


想看其他行自己改
快40的码农 2009-04-27
  • 打赏
  • 举报
回复
绑定的目标列要在操作该itme时才会能获取的.

62,267

社区成员

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

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

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

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