不用GridView自带删除功能,删除一行数据

数据表一定要有个ID的主键值,你的gridview要设定一下DataKeyNames="ID"这个属性值,接下的事件就

好多了,写个OnRowDeleting事件就可以了。
前台代码:

                        <asp:GridView ID="GridLog" runat="server" 

AutoGenerateColumns="False" CellPadding="4" DataKeyNames="ID"
              BorderColor="#333" BorderStyle="solid" BorderWidth="1" 

OnRowDeleting="PublicGridRowDeleting"
             GridLines="None" Width="98%" ForeColor="#333333">
                <FooterStyle BackColor="#507CD1" ForeColor="White" Font-Bold="True" />
                <Columns>
                    <asp:BoundField DataField="ID" HeaderText="ID"  InsertVisible="false" 

ReadOnly="True"
                        SortExpression="ID" >
                        <ItemStyle HorizontalAlign="Center" Width="20px" />
                    </asp:BoundField>

  <asp:TemplateField HeaderText="删除" ShowHeader="False">
                        <ItemStyle HorizontalAlign="Center" Width="40px" />
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" 

CausesValidation="False" CommandName="Delete" OnClientClick="return confirm('您确认删

除?');" Text="删除"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                <RowStyle BackColor="#EFF3FB" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" 

/>
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" 

/>
                <HeaderStyle BackColor="#5A799C"  ForeColor="White" Height="22px" />
                <AlternatingRowStyle BackColor="White" />
                <EditRowStyle BackColor="#2461BF" />
                <EmptyDataTemplate>
                    日志库暂时为空!
                </EmptyDataTemplate>
            </asp:GridView>


CS代码

protected void PublicGridRowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string strID = GridLog.DataKeys[e.RowIndex].Value.ToString();//strID就是该行的ID
        string strSQL = "Delete from table " +
         " WHERE id = " + strID;
        //执行删除
        ClientScript.RegisterStartupScript(GetType(), "Message", "<SCRIPT 

LANGUAGE='javascript'>alert('删除成功!');</script>");
        GridBind();

    }


关键是设定好DataKeyNames后,可以靠   string strID = GridLog.DataKeys

[e.RowIndex].Value.ToString();获得选择列的ID值 然后用这个ID执行删除就可以了
posted @ 2009-11-30 17:29  GeliBear  Views(1105)  Comments(0)    收藏  举报