gpt4 book ai didi

c# - ASP.NET GridView : How to edit and delete data records

转载 作者:太空狗 更新时间:2023-10-29 23:05:59 25 4
gpt4 key购买 nike

您好,我已经使用 gridview 创建了一个表。有没有办法实现编辑和删除。我以前用 PHP 做过。我想使用的方法是在表中再创建两列,每行都有编辑和删除按钮。然后,当单击按钮时,它会通过 URL 传递“id”并能够编辑或删除。不太确定如何在 asp.net webforms 中执行此操作。下面是我的表格代码。谢谢。

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Surgery" DataField="surgery" />
<asp:BoundField HeaderText="PatientID" DataField="patientID" />
<asp:BoundField HeaderText="Location" DataField="location" />

</Columns>

SqlCommand cmd = new SqlCommand("select surgery, patientID, location from details", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);

conn.Close();

GridView1.DataSource = dt;
GridView1.DataBind();

最佳答案

GridView 支持这些操作。您可以添加一个 CommandField,它将包含命令按钮或 LinkBut​​ton(您可以选择按钮类型并分配每个按钮的文本)。 patientID 字段应包含在 GridView 的 DataKeyNames 属性中,以便在需要更新或删除数据库中的记录时检索它。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
DataKeyNames="patientID"
OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="GridView1_RowCancelingEdit"
OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting" >
<Columns>
<asp:CommandField ShowEditButton="true" ShowCancelButton="true" ShowDeleteButton="true" />
<asp:BoundField HeaderText="Surgery" DataField="surgery" />
...
</Columns>

然后您需要在代码隐藏中处理一些事件:

// The RowEditing event is called when data editing has been requested by the user
// The EditIndex property should be set to the row index to enter edit mode
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindData();
}

// The RowCancelingEdit event is called when editing is canceled by the user
// The EditIndex property should be set to -1 to exit edit mode
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindData();
}

// The RowUpdating event is called when the Update command is selected by the user
// The EditIndex property should be set to -1 to exit edit mode
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int patientID = (int)e.Keys["patientID"]
string surgery = (string)e.NewValues["surgery"];
string location = (string)e.NewValues["location"];

// Update here the database record for the selected patientID

GridView1.EditIndex = -1;
BindData();
}

// The RowDeleting event is called when the Delete command is selected by the user
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int patientID = (int)e.Keys["patientID"]

// Delete here the database record for the selected patientID

BindData();
}

由于数据必须在每个事件处理程序的末尾绑定(bind)到 GridView,您可以在 BindData 实用程序函数中执行此操作,该实用程序函数也应在页面最初加载时调用:

private void BindData()
{
SqlCommand cmd = new SqlCommand("select surgery, patientID, location from details", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
conn.Close();
GridView1.DataSource = dt;
GridView1.DataBind();
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}

关于c# - ASP.NET GridView : How to edit and delete data records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36827111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com