确认gridview更新消息

时间:2014-06-17 08:02:56

标签: c# javascript asp.net gridview

我有一个绑定到数据集的gridview,并将'AutoGenerateEditButton'设置为true。 当用户点击“编辑”时,有两个选项可用('更新'/'取消')。 一旦用户对gridview数据进行了一些更改并单击“更新”,我想显示确认消息(八个客户端/服务器)。如果用户单击“否”,则中止服务器事件(RowUpdating)。 如果用户选择“是”,则调用服务器事件以更新到数据库。

Gridview看起来像这样: -

<asp:GridView ID="gvUserList" runat="server" GridLines="None"
                Width="100%" AutoGenerateColumns="False" OnRowCancelingEdit="gvUserList_RowCancelingEdit"
                OnRowEditing="gvUserList_RowEditing" OnRowDataBound="gvUserList_RowDataBound"
                OnRowUpdating="gvUserList_RowUpdating" AutoGenerateEditButton="True">

在代码背后,gridview将与数据集绑定。

gvUserList.DataSource = ds;
gvUserList.DataMember = "ExistingUsers";
gvUserList.DataBind();

我已经google了,并且确认了gridview删除操作的消息。找不到更新操作。

欣赏任何建议。感谢。

2 个答案:

答案 0 :(得分:1)

修改

您不应该使用AutoGenerateEditButton,而是使用模板

<强>的JavaScript

<script type="text/javascript" language="javascript">
  function ConfirmOnDelete(){
   return confirm("Are you sure to delete the item?")==true)
  }
</script>

模板字段

LinkDelete_Click是调用以删除项目的服务器端方法

<asp:TemplateField>
 <ItemTemplate>
  <asp:LinkButton ID=" LinkDelete " runat="server" CommandName="Delete" CommandArgument='<%# Eval("YourPrimaryKey") %>' OnClientClick="return ConfirmOnDelete();">Delete</asp:LinkButton>
 </ItemTemplate>
</asp:TemplateField>

<强> C#

protected void GridView1_RowCommand(object sender, 
                         GridViewCommandEventArgs e)
{
  if (e.CommandName == "Delete")
  {
    // get the primary key id of the clicked row
    int id= Convert.ToInt32(e.CommandArgument);
    // Delete the record 
    DeleteRecordByPrimaryKey(id);// Implement this on your own :) 

  }
}

看看这个article到另一种方法

答案 1 :(得分:0)

尝试使用RowDataBound事件。还要确保控制类型和控制位置。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowState == DataControlRowState.Edit)
    {
        LinkButton lb = e.Row.Cells[0].Controls[0] as LinkButton;
        lb.OnClientClick = "return confirm('Are you sure want to update?');";
    }
}

在这段代码中,我的更新按钮是一个LinkBut​​ton,它位于First Cell,第一个控件。