我的代碼實際上會返回它以前從數據庫獲得的數據,但無法從網格控件獲取更新的數據。如何從網格中檢索更新的數據並將其更新到數據庫中
這是我的Default.aspx設計已完成的gridview。
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowupdating="GridView1_RowUpdating" onrowediting="GridView1_RowEditing"
onrowupdated="GridView1_RowUpdated" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true" ShowInsertButton="true" />
<asp:TemplateField HeaderText="Id" SortExpression="Id">
<ItemTemplate>
<asp:Label ID="lbl_Id" Text='<%# Bind("id")%>' runat="server"> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" SortExpression="Name">
<ItemTemplate>
<asp:Label ID="lbl_name" Text='<%# Bind("Name")%>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt_name" Text='<%# Bind("Name")%>' runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address" SortExpression="address">
<ItemTemplate>
<asp:Label ID="lbl_address" Text='<%# Bind("address")%>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txt_address" Text='<%# Bind("address")%>' runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="lbl_msg" runat="server"></asp:Label>
</asp:Content>
My.cs File
我的代碼是在下面的類行更新方法。 我已經使用實體框架作爲在數據庫中進行操作的方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DatabaseModel;
public partial class _Default : System.Web.UI.Page
{
DatabaseEntities obj;
protected void Page_Load(object sender, EventArgs e)
{
obj = new DatabaseEntities();
GridView1.DataSource = obj.Records.ToList();
GridView1.DataBind();
}
string data;
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex];
TextBox name = row.FindControl("txt_name") as TextBox;
TextBox address = row.FindControl("txt_address") as TextBox;
Label id = row.FindControl("lbl_Id") as Label;
int no = int.Parse(id.Text);
Record rec = obj.Records.First(x => x.Id == no);
rec.Name = name.Text;
rec.Address = address.Text;
obj.SaveChanges();
data = name.Text;
lbl_msg.Text = name.Text;
}
protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
}
}
有asp.net'之間'略有區別,'ASP .net-mvc'和'asp-classic'。在StackOverflow上提出問題以確定您的目標平臺時,請適當使用這些標籤。 –