从gridview删除选定的行不再有效? [英] Deleting selected row from gridview no longer works?

查看:41
本文介绍了从gridview删除选定的行不再有效?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好。



我当前删除代码用于在Gridview表中工作但在我将其填入UpdatePanel后不再使用。



基本上,用户将选中一行或多行带复选框,然后单击按钮将删除所选行。



这是我的aspx代码;

Hello everyone.

My current delete code used to work in a Gridview table but no longer, after I stuffed it into an UpdatePanel.

Basically, users will select one or multiple rows with a checkbox and then the selected rows will be deleted upon clicking a button.

This is my aspx code;

<asp:UpdatePanel ID="upl" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnSearch" EventName="serverclick" />
        <asp:AsyncPostBackTrigger ControlID="GvGrade" />
    </Triggers>
    <ContentTemplate>
        <asp:GridView ID="GvGrade" runat="server" AutoGenerateColumns="false" ClientIDMode="Static">
            <Columns>
                <asp:TemplateField HeaderText="Task ID" HeaderStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="100" BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <ItemStyle HorizontalAlign="Center" />
                    <ItemTemplate>
                        <asp:Label ID="lblID" CssClass="lblID" runat="server" Text='<%# Eval("drug_id") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <Columns>
                <asp:TemplateField HeaderText="Drug Name" HeaderStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="300" BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <ItemStyle HorizontalAlign="Center" />
                    <ItemTemplate>
                        <asp:Label ID="lblDrugName" CssClass="lblImageName" runat="server" Text='<%# Eval("drug_name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <Columns>
                <asp:TemplateField HeaderText="Drug Description" HeaderStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="500" BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <ItemStyle HorizontalAlign="Center" />
                    <ItemTemplate>
                        <asp:Label ID="lblDrugDescription" CssClass="lblImage" runat="server" Text='<%# Eval("drug_description") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <Columns>
                <asp:TemplateField HeaderText="Task Status" HeaderStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="200" BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <ItemStyle HorizontalAlign="Center" />
                    <ItemTemplate>
                        <asp:Label ID="lblTaskStatus" CssClass="lblImage" runat="server" Text='<%# Eval("task_status") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <Columns>
                <asp:TemplateField HeaderText="Task Type" HeaderStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="100" BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <ItemStyle HorizontalAlign="Center" />
                    <ItemTemplate>
                        <asp:Label ID="lblTaskType" CssClass="lblImage" runat="server" Text='<%# Eval("task_type") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <Columns>
                <asp:TemplateField HeaderText="Delete Tasks" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="100" BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <ItemStyle HorizontalAlign="Center" />
                    <ItemTemplate>
                        <asp:CheckBox ID="chkbox" runat="server" onclick="javascript:HighlightRow(this);" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>





和代码隐藏;



And the code-behind;

protected void showData()
{
    SqlDataAdapter da = new SqlDataAdapter("select * from Drug", con);
    DataSet ds = new DataSet();
    da.Fill(ds);
    GvGrade.DataSource = ds;
    GvGrade.DataBind();
}


protected void DeleteRecord(string drug_name)
{
    SqlConnection con = new SqlConnection(cs);
    SqlCommand com = new SqlCommand("delete from Drug where drug_name=@ID", con);
    com.Parameters.AddWithValue("@ID", drug_name);
    con.Open();
    com.ExecuteNonQuery();
    con.Close();
}

protected void BtnLogin_Click(object sender, EventArgs e)
{
    foreach (GridViewRow grow in GvGrade.Rows)
    {
        CheckBox chkbox = (CheckBox)grow.FindControl("chkbox");
        if (chkbox.Checked)
        {
            string drug_name = grow.Cells[1].Text;
            DeleteRecord(drug_name);
        }
    }
    //Displaying the Data in GridView
    showData();
}





我尝试过:



我已经用Google搜索了一些关于按钮回发后重新绑定表格的内容,但我不认为这是问题所在。我也尝试使用upl.Update更新代码隐藏中的面板,但它仍然无法正常工作。这里发生了什么?



What I have tried:

I had googled around and read something about re-binding the table after button postback but I don't think that is the issue. I have also tried updating the panel in the code-behind with upl.Update but it still doesn't work. What is happening here?

推荐答案

已修复。



好​​像我的代码背后的DeleteRecord只是不喜欢TemplateField而更喜欢BoundField。
Fixed.

Seems like my code behind for "DeleteRecord" just dislikes "TemplateField" and prefers "BoundField".


这篇关于从gridview删除选定的行不再有效?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆