读书人

后盾获取 Repeater里的ID

发布时间: 2013-04-02 12:35:26 作者: rapoo

后台获取 Repeater里的ID
//前台

<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
<a href="newsView.aspx?ClassID=<%#Eval("ID")%>" target="_blank">
<%#Eval("ID")%></a><%#Eval("标题")%><%#Eval("简介")%><%#Eval("来源")%>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="删除" /> <br/>
</ItemTemplate>
</asp:Repeater>

//后台

protected void Button1_Click(object sender, EventArgs e)
{

try
{

var obj = (from o in context.新闻
where o.ID == 这里应该添加什么才能获取Repeater里的ID值,完成删除功能
select o).Single();
context.DeleteObject(obj);
context.SaveChanges();
JS.Alert(this, "删除成功!");
}
catch (DataServiceRequestException ex)
{
throw new ApplicationException(
"删除时发生错误", ex);
}
}
[解决办法]
不是用Button1_Click事件
而是用Repeater_ItemCommand事件
具体参考代码:repeater增删改查
[解决办法]


<asp:Button ID="Button1" runat="server" Text="删除 OnClientClick="return confirm('确定要删除吗?');" CommandName="del" CommandArgument='<%#Eval("ID")%>' /> <br/>


protected void Repeater1_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
if (e.CommandName == "del")
{
int id=Convert.ToInt32(e.CommandArgument);
}


}


[解决办法]
<ItemTemplate>
<tr runat="server" id="itemTr">
<td>
<asp:Label ID="lblItemId" runat="server" Visible="false" Text='<%#Eval("ItemId")%>'></asp:Label>
<asp:CheckBox ID="chkBox" runat="server" onclick="CheckItem('DIDiv')" />
</td>
<td>
<asp:LinkButton ID="IbtnEdit" runat="server" CommandName="Edit"><img src="../images/icon_edit.png" title="修改" />修改
</asp:LinkButton>
</td>
......
</ItemTemplate>
[解决办法]
获取到ID,就可以做更新或删除了:
http://www.cnblogs.com/insus/articles/2036884.html
or
http://www.cnblogs.com/insus/archive/2013/01/16/2863503.html
[解决办法]
按钮要设置为Repeater的删除事件,其后绑定删除事件

读书人网 >asp.net

热点推荐