[英]cant update gridview by updating method asp.net
我寫了一個用於編輯刪除和更新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();
}
還有我的客戶鱈魚:
<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.我們必須檢查頁面是否回發。 如果沒有,那么我們將綁定網格。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
2.使用數據密鑰 。
<asp:gridview id="GridView1"
...
DataKeyNames="ProjectID"
/>
string empsname = Convert.ToString(grdvw1.DataKeys[e.RowIndex].Values[1]);
3。
將gridview的 enableviewstate屬性設置為false可以獲取新值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.