如何从gridView中获取未选中的值
本文关键字:获取 gridView | 更新日期: 2023-09-27 18:17:01
我需要能够从GridView中删除记录,但为了这样做,我需要在.cs文件上添加一个方法。问题是,我有其他表,有一个列车的ID与它相关联,所以我需要显示一个错误消息,如果删除命令失败。我的问题是,我只能删除记录时,该记录被选中。(GridView2。 SelectedDataKey )。我希望能够在未选中时删除它
像是GriView2。Datakey……
aspx页面:
<LinkButton ID="LinkButton3" runat="server" CausesValidation="False"
CommandName="" Text="DELETE" OnClick ="del" >
cs代码:
protected void del(object sender, EventArgs e)
{
string DeleteSql = "DELETE FROM [Trains] WHERE [ID_Train] = @ID_Train";
SqlCommand com = new SqlCommand(DeleteSql, Connection);
String key = GridView2.SelectedDataKey["ID_Train"].ToString();
try
{
com.Parameters.AddWithValue("@ID_Train", key);
cn.Open();
com.ExecuteNonQuery();
cn.Close();
Response.Redirect("Trains.aspx");
}
catch (Exception)
{
Label5.Text = "Error";
Label5.Visible = true;
}
}
假设您有一个类似的模板结构:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" Text="Delete"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
并且您在SqlDataSource中有一个Delete命令,您可以像这样处理删除命令并访问RowCommand事件中的数据键(注意,我将此从VB转换为c#,因此c#可能会关闭,但您明白这个想法):
private void GridView1_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e) Handles GridView1.RowCommand
{
if( e.CommandName == "Delete" ) {
string TrainID = GridView1.DataKeys(e.Row.RowIndex).Values("ID_Train");
integer rc = 0;
GridView1.DeleteParameters.Clear();
GridView1.DeleteParameters.Add("Train_ID", TrainId); // Adjust as necessary
try{
rc = GridView1.Delete();
if( rc == 1) {
// Deleted
} else {
// Not Deleted
}
}
catch() {
Label5.Text = "Error";
Label5.Visible = true;
}
}
}