我的GridView通过DataSource绑定数据源,我在GridView增加了两列,一列是编辑、一列是删除,问题:
1,当删除时,我想实现删除之前弹出对话框,提示是否删除,这个可以通过Javascript实现,但是在C#中不知道两者如何结合在一起,请问该如何实现该功能?2.当编辑时,我需要修改的一项同时也是我的数据表的主键,所以我修改之前需要先用一个变量记录下该数据项的值,然后修改后提交时,作为我的sql语句的条件,即where f_No=var,不知道该如何事先获取该值,存到变量中?谢谢啊!

解决方案 »

  1.   

    <asp:Button ID="btnDelete" runat="server" Text="删  除" OnClientClick="return window.confirm('确认要删除吗?')" OnClick="btnDelete_Click" />
      

  2.   

    1个问题: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            e.Row.Attributes.Add("onclick", "confirm('确定删除吗?');");
        }
    2个问题:我需要修改的一项同时也是我的数据表的主键-----数据库设计有问题,主键不应被修改
      

  3.   

    <asp:TemplateField ShowHeader="False">
       <ItemStyle HorizontalAlign="Center" />
       <ItemTemplate>
          <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" Text="编辑" CommandName="Edit" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"userID") %>'>
          </asp:LinkButton>
       </ItemTemplate>
    </asp:TemplateField>
    //-------------------------------------------------------------------------------------
    protected void gvUser_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Edit")
            {
                string userid = e.CommandArgument.ToString().Trim();
                //...
            }
        }
      

  4.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;using Tool;
    using Manager;
    using Entity;public partial class Web_BBS_BreakfaithList : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
          this.btnDelete.Attributes.Add("onClick", "return confirm('确定要删除该记录?');");
            }
        }
     /// <summary>
        /// 实现更新修改功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < this.gvBreakfaith.Rows.Count; i++)
                {
                    if (((CheckBox)this.gvBreakfaith.Rows[i].Cells[0].Controls[1]).Checked == true)
                    {
                        int BreakfaithID = UtilTool.ToSafeInt32(this.gvBreakfaith.DataKeys[i].Value);
                        Response.Redirect("BreakfaithAdd.aspx?BreakfaithID=" + BreakfaithID);
                    }
                }
            }
            catch (Exception ex)
            {
                this.lblMessage.Text = ex.Message;
            }
        }
      

  5.   

    <asp:GridView ID="InfoTable" ..... DataKeyNames="SawID" OnRowUpdating="Gv_RowUpDateing" >
        protected void Gv_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string id = InfoTable.DataKeys[e.RowIndex].Values[0].ToString();
            // OR string id = InfoTable.DataKeys[e.RowIndex].Value.ToString();
        }
      

  6.   

    晕,复制错了 
    protected void Gv_RowUpDateing(object sender, GridViewUpdateEventArgs e)
      

  7.   

    问个问题啊,在GridView中修改某一条数据时,在DataSource中设置的UpdateQuery为:
    update Tb_Meter set f_MeterNo=@f_MeterNo ,  f_HouseName =@f_HouseName  where f_MeterNo=@oldMeterNo
    其中f_HouseName,f_MeterNo的值为GridView1.SelectedValue,oldMeterNo值为Session("oldMeterNo"),现在f_HouserName可以修改了,可是f_MeterNo该不了啊,不知道怎么回事?
    其中Session("oldMeterNo")已经取出看过,确实是存在并正确的!
      

  8.   

    刚刚用sqlserver的事件探测器观察得到的结果竟然是oldMeterNo、f_MeterNo值都是修改以后的值 oldMeterNo我是在GridView1_RowEditing()事件中获得的        
    int i = e.NewEditIndex;
    Session["oldMeterNo"] = GridView1.Rows[i].Cells[3].Text;
    不知道该从什么事件获取才合理?
      

  9.   

    hegang8888888881个问题: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            e.Row.Attributes.Add("onclick", "confirm('确定删除吗?');");
        }你这个方法不行
      

  10.   

    首先转成模板列,把那个删除按钮做成linkbutton,再在这个按钮属性里找到onclientclick属性值设成return confirm('删除吗?');