日期:2014-05-18  浏览次数:20577 次

repeater删除功能
<td class="listbor01">
<%# Convert.ToString(Container.ItemIndex + 1) %>
</td>
上面是我页面写的自增列,也是repeater表的首列,我想实现删除,能不能用上面的自增id进行删除

<asp:LinkButton id="btnDelete" CommandName='<%#DataBinder.(Container, "ItemId") %>' OnCommand="btnDelete_Click" runat="server" >


我不知道这句是不是获取自增列的id呢———CommandName='<%#DataBinder.(Container, "ItemId") %>'

------解决方案--------------------
这个不能用自增列的,你应该用该表的主键列来删除。

<asp:LinkButton id="btnDelete" CommandArgument='<%#Eval("ItemId") %>' OnCommand="btnDelete_Click" runat="server" >

public void btnDelete_Click(object sender,CommandEventArgs e)
{
string id = e.CommandArguments.ToString();
string strSQL="delete from 表名 where ItemID="+int.Parse(id);
//执行删除逻辑即可
}
------解决方案--------------------
C# code

 <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
        <ul>
        <li>编号:<%#Eval("id")%></li>
        <li>姓名:<%#Eval("uname")%></li>
        <li>
            <asp:LinkButton ID="LinkButton2" runat="server" CommandArgument='<%#Eval("id")%>' onclick="LinkButton2_Click">删除</asp:LinkButton></li>
        </ul>
        </ItemTemplate>
        </asp:Repeater>

------解决方案--------------------
探讨

引用:

删除的话你得用表的主键,你可以把表的主键放到该记录的一个隐藏控件中,然后删除时取出该值即可实现删除


我就是不想用表的主键,因为那样页面会不好看,这个隐藏控件是什么,应该怎么用

------解决方案--------------------
<asp:HiddenField id="HF" runat="server" value=<%#Eval("SID")%>></asp:HiddenField>
你为什么不直接把id绑定在CommandArgument上面呢?