我编写了用于编辑,更新,删除的代码,但是通过单击“编辑"按钮,该表消失了 [英] I worte code for edit,update,delete but by clicking edit button the table is disapeared

查看:54
本文介绍了我编写了用于编辑,更新,删除的代码,但是通过单击“编辑"按钮,该表消失了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尊敬的专家,
请在代码中提示我错误....
即,gridview编辑,更新,删除,方法是:单击编辑按钮以使表崩溃…….任何人都可以提示该错误..
这是我的代码.
我的源代码..

Dear Experts,
plz suggest me the error in my code....
i.e., gridview edit,update,delete by clicking on edit button the table disapering .... can any one suggest that error..
this is my code..
my source code..

<asp:GridView ID="gvdetails" runat="server" AutoGenerateColumns="false"

            AllowPaging="true" PageSize="5"

             OnRowEditing="gvdetails_RowEditing" OnRowDeleting="gvdetails_RowDeleting" OnRowUpdating="gvdetails_RowUpdating" DataKeyNames="UserId,UserName"

              OnRowCancelingEdit="gvdetails_RowCancelingEdit"  OnPageIndexChanging="gvdetails_PageIndexChanging">

        <PagerSettings Mode="NumericFirstLast" PageButtonCount="5" FirstPageText="Firstpage" NextPageText="Nextpage" />
        <Columns>
        <asp:TemplateField>
        <EditItemTemplate>
        <asp:ImageButton ID="imgbtnUpdate" CommandName="Update" runat="server" ImageUrl="~/Images/update.jpg" ToolTip="Update" Height="20px" Width="20px" />
        <asp:ImageButton ID="imgbtnCancel" CommandName="Cancel" runat="server" ImageUrl="~/Images/Button cancel Icon.jpg" ToolTip="Cancel" Height="20px" Width="20px" />
        </EditItemTemplate>
        <ItemTemplate>
        <asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" ImageUrl="~/Images/Edit Icon.jpg" ToolTip="Edit" Height="20px" Width="20px" />
        <asp:ImageButton ID="imgbtnDelete" CommandName="Delete" runat="server" ImageUrl="~/Images/Delete.jpg" ToolTip="Delete" Height="20px" Width="20px" />
        </ItemTemplate>
        </asp:TemplateField>

       <asp:TemplateField HeaderText="UserName">
       <ItemTemplate>
       <asp:Label ID="lblitmusr" runat="server" Text='<%#Eval("UserName")%>'></asp:Label>
       </ItemTemplate>
       <EditItemTemplate>
       <asp:Label ID="lbleditusr" runat="server" Text='<%#Eval("UserName") %>'></asp:Label>
       </EditItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="City">
       <ItemTemplate>
       <asp:Label ID="lblitmcity" runat="server" Text='<%#Eval("City") %>' ></asp:Label>
       </ItemTemplate>
       <EditItemTemplate>
       <asp:Label ID="lbleditcity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
       </EditItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="Designation">
       <ItemTemplate>
       <asp:Label ID="lblitmdesignation" runat="server" Text='<%#Eval("Designation")%>'></asp:Label>
       </ItemTemplate>
       <EditItemTemplate>
       <asp:Label ID="lbleditdesignation" runat="server" Text='<%#Eval("Designation") %>'></asp:Label>
       </EditItemTemplate>
       </asp:TemplateField>

        </Columns>

        </asp:GridView>
        <asp:Label ID="lblresult" runat="server"></asp:Label>





我的aspx.cs代码:





my aspx.cs code:

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



    }
    protected void BindGridView()
    {
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from GridDetails", con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        con.Close();
        if (ds.Tables[0].Rows.Count > 0)
        {
            gvdetails.DataSource = ds;
            gvdetails.DataBind();
        }
        else
        {
            ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());
            gvdetails.DataSource = ds;
            gvdetails.DataBind();
            int columncount = gvdetails.Rows[0].Cells.Count;
            gvdetails.Rows[0].Cells.Clear();
            gvdetails.Rows[0].Cells.Add(new TableCell());
            gvdetails.Rows[0].Cells[0].ColumnSpan = columncount;
            gvdetails.Rows[0].Cells[0].Text = "No Records Found";

        }


    }

    protected void gvdetails_RowUpdating(object sender,GridViewUpdateEventArgs e)
    {
        int userid = Convert.ToInt32(gvdetails.DataKeys[e.RowIndex].Value.ToString());
        string username = gvdetails.DataKeys[e.RowIndex].Values["UserName"].ToString();
        TextBox txtcity=(TextBox)gvdetails.Rows[e.RowIndex].FindControl("txtcity");
        TextBox txtDesignation=(TextBox)gvdetails.Rows[e.RowIndex].FindControl("txtDesignation");
        con.Open();
        SqlCommand cmd=new SqlCommand("update from GridDetails set City='"+txtcity.Text+"',Designation='"+txtDesignation.Text+"' where Userid="+userid,con);
        cmd.ExecuteNonQuery();
        con.Close();
        lblresult.Text=username + "Details Updated Successfully";
        gvdetails.EditIndex = -1;
        BindGridView();
        



    }
   
    protected void gvdetails_RowEditing(object sender,GridViewEditEventArgs e )
    {
        gvdetails.EditIndex = e.NewEditIndex;
        gvdetails.DataBind();
    }

    protected void gvdetails_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        gvdetails.EditIndex = -1;
        BindGridView();
    }
    protected void gvdetails_RowDeleting(object sender,GridViewDeleteEventArgs e)
    {


        int userid = Convert.ToInt32(gvdetails.DataKeys[e.RowIndex].Values["UserId"].ToString());
        string username = gvdetails.DataKeys[e.RowIndex].Values["UserName"].ToString();
        con.Open();
        SqlCommand cmd = new SqlCommand("delete from GridDetails where UserId=" + userid, con);
        int result = cmd.ExecuteNonQuery();
        con.Close();
        if (result == 1)
        {
            BindGridView();
            lblresult.Text = username + "Details deleted successfully";

        }
    }
    protected void gvdetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvdetails.PageIndex = e.NewPageIndex;
        BindGridView();

推荐答案

尝试以下操作:
Try this:
protected void gvdetails_RowEditing(object sender,GridViewEditEventArgs e )
{
    gvdetails.EditIndex = e.NewEditIndex;
    //gvdetails.DataBind(); You missed your datasource here.
    BindGridView();
}




--Amit




--Amit


Hello dude使用此代码,我已经做了一些修改


在您的aspx页面中.

Hello dude use this code , I have take some modification


in your aspx page .

<asp:GridView ID="gvdetails" runat="server" AutoGenerateColumns="false"

            AllowPaging="true" PageSize="5"

             OnRowEditing="gvdetails_RowEditing" OnRowDeleting="gvdetails_RowDeleting" OnRowUpdating="gvdetails_RowUpdating" DataKeyNames="UserId,UserName"

              OnRowCancelingEdit="gvdetails_RowCancelingEdit"  OnPageIndexChanging="gvdetails_PageIndexChanging">

        <PagerSettings Mode="NumericFirstLast" PageButtonCount="5" FirstPageText="Firstpage" NextPageText="Nextpage" />
        <Columns>
        <asp:TemplateField>
        <EditItemTemplate>
        <asp:ImageButton ID="imgbtnUpdate" CommandName="Update" runat="server" ImageUrl="~/Images/update.jpg" ToolTip="Update" Height="20px" Width="20px" />
        <asp:ImageButton ID="imgbtnCancel" CommandName="Cancel" runat="server" ImageUrl="~/Images/Button cancel Icon.jpg" ToolTip="Cancel" Height="20px" Width="20px" />
        </EditItemTemplate>
        <ItemTemplate>
        <asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" ImageUrl="~/Images/Edit Icon.jpg" ToolTip="Edit" Height="20px" Width="20px" />
        <asp:ImageButton ID="imgbtnDelete" CommandName="Delete" runat="server" ImageUrl="~/Images/Delete.jpg" ToolTip="Delete" Height="20px" Width="20px" />
        </ItemTemplate>
        </asp:TemplateField>

       <asp:TemplateField HeaderText="UserName">
       <ItemTemplate>
       <asp:Label ID="lblitmusr" runat="server" Text='<%#Eval("UserName")%>'></asp:Label>
       </ItemTemplate>
       <EditItemTemplate>
<%--         <asp:Label ID="Label1" runat="server" Text='<%#Eval("UserName") %>'></asp:Label> // line Comment by sanwar--%>
       <asp:TextBox ID="lbleditusr" runat="server" Text='<%#Eval("UserName") %>'></asp:TextBox>  <%--// line add by sanwar--%>
       </EditItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="City">
       <ItemTemplate>
       <asp:Label ID="lblitmcity" runat="server" Text='<%#Eval("City") %>' ></asp:Label>
       </ItemTemplate>
       <EditItemTemplate>
<%--  <asp:Label ID="Label1" runat="server" Text='<%#Eval("City") %>'></asp:Label>      // line Comment by sanwar--%>
       <asp:TextBox ID="lbleditcity" runat="server" Text='<%#Eval("City") %>'></asp:TextBox>        <%--// line add by sanwar--%>

       </EditItemTemplate>
       </asp:TemplateField>
       <asp:TemplateField HeaderText="Designation">
       <ItemTemplate>
       <asp:Label ID="lblitmdesignation" runat="server" Text='<%#Eval("Designation")%>'></asp:Label>
       </ItemTemplate>
       <EditItemTemplate>
       <%--         <asp:Label ID="lbleditdesignation" runat="server" Text='<%#Eval("Designation") %>'></asp:Label> // line Comment by sanwar--%>
       <asp:TextBox ID="lbleditdesignation" runat="server" Text='<%#Eval("Designation") %>'></asp:TextBox>  <%--// line add by sanwar--%>
       </EditItemTemplate>
       </asp:TemplateField>

        </Columns>

        </asp:GridView>
        <asp:Label ID="lblresult" runat="server"></asp:Label>





And in your aspx.cs page






And in your aspx.cs page


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



   }
   protected void BindGridView()
   {
       con.Open();
       SqlCommand cmd = new SqlCommand("select * from GridDetails", con);
       SqlDataAdapter da = new SqlDataAdapter(cmd);
       DataSet ds = new DataSet();
       da.Fill(ds);
       con.Close();
       if (ds.Tables[0].Rows.Count > 0)
       {
           gvdetails.DataSource = ds;
           gvdetails.DataBind();
       }
       else
       {
           ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());
           gvdetails.DataSource = ds;
           gvdetails.DataBind();
           int columncount = gvdetails.Rows[0].Cells.Count;
           gvdetails.Rows[0].Cells.Clear();
           gvdetails.Rows[0].Cells.Add(new TableCell());
           gvdetails.Rows[0].Cells[0].ColumnSpan = columncount;
           gvdetails.Rows[0].Cells[0].Text = "No Records Found";

       }


   }

   protected void gvdetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
   {
       GridViewRow row = (GridViewRow)gvdetails.Rows[e.RowIndex]; // line add by sanwar
       int userid = Convert.ToInt32(gvdetails.DataKeys[e.RowIndex].Value.ToString());
       string username = gvdetails.DataKeys[e.RowIndex].Values["UserName"].ToString();
       TextBox txtcity = (TextBox)row.FindControl("lbleditcity");// line add by sanwar
       // TextBox txtcity = (TextBox)gvdetails.Rows[e.RowIndex].FindControl("txtcity"); // line Comment by sanwar
       TextBox txtDesignation = (TextBox)row.FindControl("lbleditdesignation");// line add by sanwar
       //TextBox txtDesignation = (TextBox)gvdetails.Rows[e.RowIndex].FindControl("txtDesignation");// line Comment by sanwar
       con.Open();
       //SqlCommand cmd = new SqlCommand("update from GridDetails set City=''" + txtcity.Text + "'',Designation=''" + txtDesignation.Text + "'' where Userid=" + userid, con);
       SqlCommand cmd = new SqlCommand("update  GridDetails set City=''" + txtcity.Text + "'',Designation=''" + txtDesignation.Text + "'' where Userid=" + userid, con); // line Modify by sanwar

       cmd.ExecuteNonQuery();
       con.Close();
       lblresult.Text = username + "Details Updated Successfully";
       gvdetails.EditIndex = -1;
       BindGridView();




   }

   protected void gvdetails_RowEditing(object sender, GridViewEditEventArgs e)
   {
       gvdetails.EditIndex = e.NewEditIndex;
       // gvdetails.DataBind(); // line Comment by sanwar  Note: your table not display because your table data has been lost ,No Bind the data  this region
       BindGridView(); // line add by sanwar
   }

   protected void gvdetails_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
   {
       gvdetails.EditIndex = -1;
       BindGridView();
   }
   protected void gvdetails_RowDeleting(object sender, GridViewDeleteEventArgs e)
   {


       int userid = Convert.ToInt32(gvdetails.DataKeys[e.RowIndex].Values["UserId"].ToString());
       string username = gvdetails.DataKeys[e.RowIndex].Values["UserName"].ToString();
       con.Open();
       SqlCommand cmd = new SqlCommand("delete from GridDetails where UserId=" + userid, con);
       int result = cmd.ExecuteNonQuery();
       con.Close();
       if (result == 1)
       {
           BindGridView();
           lblresult.Text = username + "Details deleted successfully";

       }
   }
   protected void gvdetails_PageIndexChanging(object sender, GridViewPageEventArgs e)
   {
       gvdetails.PageIndex = e.NewPageIndex;
       BindGridView();
   }


这篇关于我编写了用于编辑,更新,删除的代码,但是通过单击“编辑"按钮,该表消失了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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