在RowUpdating事件中娶不到值?

mathieuxiao 2010-10-08 07:17:55

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvCustomer" runat="server" Width="100%" AutoGenerateColumns="False"
AllowPaging="True" DataKeyNames="CustomerID" OnPageIndexChanging="gvCustomer_PageIndexChanging"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None"
BorderWidth="1px" CellPadding="3" onrowediting="gvCustomer_RowEditing"
onrowcancelingedit="gvCustomer_RowCancelingEdit"
onrowupdating="gvCustomer_RowUpdating">
<FooterStyle BackColor="White" ForeColor="#000066" />
<RowStyle ForeColor="#000066" />
<Columns>
<asp:BoundField DataField="CustomerID" HeaderText="客户ID" />
<asp:TemplateField HeaderText="公司名称">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("CompanyName") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("CompanyName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ContactName" HeaderText="联系人" />
<asp:BoundField DataField="ContactTitle" HeaderText="联系人头衔" />
<asp:BoundField DataField="Address" HeaderText="地址" />
<asp:CommandField ShowEditButton="True" />
</Columns>
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
<br />
<asp:Label ID="lblMessage" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>


using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DataLinq;
using System.Data.Linq;
using BusinessFacade;

public partial class _Default : System.Web.UI.Page
{
CustomerBFL objCustomer = new CustomerBFL();

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

private void BindGridView()
{
Table<Customer> localDataTable;
localDataTable = objCustomer.SelectRecordAll();

gvCustomer.DataSource = (from tbl in localDataTable
select new
{
tbl.CustomerID,
tbl.CompanyName,
tbl.ContactName,
tbl.ContactTitle,
tbl.Address
});
gvCustomer.DataBind();

if (localDataTable.Count() == 0)
{
lblMessage.Text = "没有找到记录!";
}
}

protected void gvCustomer_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.gvCustomer.PageIndex = e.NewPageIndex;
BindGridView();
}

protected void gvCustomer_RowEditing(object sender, GridViewEditEventArgs e)
{
gvCustomer.EditIndex = e.NewEditIndex;
BindGridView();
}

protected void gvCustomer_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Customer cus = new Customer();

//不论是用模板列还是BoundField列,用下面的方式取出来的值都是原来的那个值,修改后的值取不到
//而且e.NewValues也是空值
cus.CustomerID = ((TextBox)gvCustomer.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
Customer c = (Customer)gvCustomer.Rows[e.RowIndex].DataItem;
}

protected void gvCustomer_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvCustomer.EditIndex = -1;
BindGridView();
}
}

...全文
99 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-10-08
  • 打赏
  • 举报
回复
if (!Page.IsPostBack)
{
BindGridView();

}
hongjiaoli 2010-10-08
  • 打赏
  • 举报
回复
用FindControl这个方法试试。
beyond_me21 2010-10-08
  • 打赏
  • 举报
回复
if (!Page.IsPostBack)
{
BindGridView();

}
yvhkwfn30 2010-10-08
  • 打赏
  • 举报
回复
...我回复的答案咋没有了
lishuai1030 2010-10-08
  • 打赏
  • 举报
回复

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧