[c#]不能通过更新方法 asp.net 更新 gridview

标签: Asp.net GridView C#
发布时间: 2017/2/25 3:53:05
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我写的代码,因为编辑删除和更新 gridview 但它没有工作期间更新只这儿过去值不是新的服务器端代码︰

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        try
        {

            TextBox na = (TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0];
            TextBox i = (TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0];
            TextBox sid = (TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0];
            //      string a = name.Text;
            string name = na.Text;
            int id = Convert.ToInt32(i.Text);
            String stdid = sid.Text;


            String query = "update [table] set name=@name,stdid=@stdid where id=@id ";
            SqlConnection sqc = new SqlConnection(cons);
            SqlCommand qu = new SqlCommand(query, sqc);
            qu.Parameters.AddWithValue("@name", name);
            qu.Parameters.AddWithValue("@stdid", stdid);
            qu.Parameters.AddWithValue("@id", id);
            string f = qu.CommandText;
            sqc.Open();
            qu.ExecuteNonQuery();
            sqc.Close();
        }
        catch (Exception ee) { }
        refresh_dgv();
    }

还有我客户端侧 cod:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  
OnRowDeleting="GridView1_RowDeleting"OnRowEditing="GridView1_RowEditing"     OnRowUpdated="GridView1_RowUpdated" OnRowUpdating="GridView1_RowUpdating" OnSelectedIndexChanged="GridView1_SelectedIndexChanged1" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True">
         <Columns>

                <asp:BoundField DataField="id"  HeaderText ="id"/>
                <asp:BoundField DataField="name" HeaderText="name" />
                <asp:BoundField DataField="stdid" HeaderText="stdid" />  

            </Columns>  
    </asp:GridView>

解决方法 1:

这个问题可以解决多种方式如下图所示。

1.我们要检查如果该页将被发送回或不。如果不是,然后我们会将该网格绑定。

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

2使用DataKeys eg。

 <asp:gridview id="GridView1" 
    ...
              DataKeyNames="ProjectID"
    />
 string empsname = Convert.ToString(grdvw1.DataKeys[e.RowIndex].Values[1]);

3。

属性设置为falsegridview可以获取新值

赞助商