asp.net c# 在repeater中使用服务器控件
//代码:
<body>
<form id="form1" runat="server">
<div>
<div align="center">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<table style="border: 6px groove #C0C0C0; width: 682px; height: 190px">
<tr>
<td class="style1" rowspan="3">
<img alt="<%# Eval("Fusername") %> 积分:<%# Eval("Fintegral") %>" src="imgs/<%# Eval("Fphoto") %>" /></td>
<td class="style3"><%# Eval("Fusername") %> 于<%# Eval("Ttime") %> 发布!</td>
</tr>
<tr>
<td class="style2"><%# Eval("Tcontent") %></td>
</tr>
<tr>
<td>
<a href="#" title="<%# Eval("Femail") %>">电子邮件</a>
<a href="#" title="浏览<%# Eval("Fusername") %>的个人主页"> 个人主页 </a>
<a href="#"> 版主回复 </a>
<asp:LinkButton ID="lbutdel" runat="server" CommandArgument="id" Text="删除"></asp:LinkButton>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</form>
</body>
//---------
在后台cs代码中不能使用服务器控件LinkButton
不过把<asp:LinkButton ID="lbutdel" runat="server" CommandArgument="id" Text="删除"></asp:LinkButton>
这段代码放到Repeater控件外又可以使用。
这问题怎么决解~~
------解决方案--------------------老生常谈了 不知道你有没有完整的看过一本哪怕是很垃圾的asp.net教程 都会说的如何从repeater gridview里面找控件
http://wenku.baidu.com/view/51bc0f0016fc700abb68fc8c.html
------解决方案--------------------
放在Repeater内的控件,需要在Repeater控件的OnItemDataBound事件通过FindControl方法来寻找该控件。
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound= "Repeater1_ItemDataBound" >
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton lb = (LinkButton)e.Item.FindControl( "lbutdel");
lb.Attributes.Add( "onclick ", "javascript:return confirm( '您确认删除吗? '); ");
}
}
方法二:
你这个是在Repeater控件内的LinkButton,如果想要实现删除功能,不需要找,直接处理LinkButton的OnCommand事件,获取到你的CommandArgument参数后,该干嘛干嘛
<asp:LinkButton ID="lbutdel" runat="server" CommandArgument='<%#Eval("id")%>' Text="删除" OnCommand="lbutdel_Command"></asp:LinkButton>
protected void lbutdel_Command(object sender,CommandEventArgs e)
{
string id = e.CommandArgument.ToString();
string strSQL = "delete from 表名 where ID="+id;
//执行删除逻辑,你懂的
}