如何获取GridView中TextBox改变后的值

lizhongen1986 2010-03-31 11:01:07
我现在做的是购物车项目,期间关于天购买的数量是动态的,但初始值是从数据库获取的,也就是说当修改了TextBox中的值后,把这个值存到数据库中,关键是我现在获取不到修改后TextBox的值,而购物车的信息是用GridView绑定数据源的。请给位高手帮帮忙,谢谢
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
商品名称
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="name" runat="server" Text='<%#Bind("Sname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
商品价格
</HeaderTemplate>
<ItemTemplate>
 
<asp:Label ID="price" runat="server" Text='<%#Bind("SPrice")%>'></asp:Label>元
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
商品数量
</HeaderTemplate>
<ItemTemplate>
   
<asp:TextBox ID="num" runat="server" Text='<%#Bind("Snum") %>'
Width="101px" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>



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

}

//绑定数据控件的方法
private void NewBind()
{
GridView1.DataSource = DataOperate.QueryDataTable("select * from ShopCar"); //DataOperate.QueryDataTable是类里的一个方法,这个没问题
GridView1.DataBind();
}

现在关键是我修改了TextBox的值后,更新不到数据库中,也不知道该在哪个事件里写
...全文
887 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx8849 2010-03-31
  • 打赏
  • 举报
回复
你这个就算改了也没有更新事件啊,你最少在后面或前面加个编辑列吧
z415353144 2010-03-31
  • 打赏
  • 举报
回复
是textbox
z415353144 2010-03-31
  • 打赏
  • 举报
回复
模板列:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
((Label)e.Row.Cells[0].FindControl("LabSingle_Cent")).Text = "123";
}
}

非模板列:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0.Text = "123";
}
}
wx8849 2010-03-31
  • 打赏
  • 举报
回复
gridview主键设置成你的数据ID,如果用控件自带的编辑就直接在GridViewCommand事件里面循环拿就
lizhongen1986 2010-03-31
  • 打赏
  • 举报
回复
suseljl的朋友,“然后还要设置gridview的主键,向里面添加更新按钮,在更新按钮里添加代码即可”集体怎么做呢,能否指点一下,非常感谢
NO_STUFF 2010-03-31
  • 打赏
  • 举报
回复
TEXT的值改变 那就用TEXTCHANGED 属性 没问题0 0
suseljl 2010-03-31
  • 打赏
  • 举报
回复
Text的AutoPostBack 不用设置为True
suseljl 2010-03-31
  • 打赏
  • 举报
回复
<ItemTemplate>
   
<asp:TextBox ID="num" runat="server" Text='<%#Bind("Snum") %>'
Width="101px" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
要改成<EditItemTemplate>    
<asp:TextBox ID="num" runat="server" Text='<%#Bind("Snum") %>'
Width="101px" AutoPostBack="True"></asp:TextBox>
</EditItemTemplate>
然后还要设置gridview的主键,向里面添加更新按钮,在更新按钮里添加代码即可

lighwind 2010-03-31
  • 打赏
  • 举报
回复
你在修改数量的文本框中加一个时间TextChanged
在事件中写
TextBox tb=sender as TextBox;
GridViewRow row=tb.parent.parent as GridViewRow;
//获得该条记录的某些信息
//然后更新数据库中的这条数据
//重新绑定GridView的数据源就可以了
cpp2017 2010-03-31
  • 打赏
  • 举报
回复
你要放一个command按纽列,在对应的GridViewCommand事件中写代码.这个基础教程里肯定有的.
丰云 2010-03-31
  • 打赏
  • 举报
回复

asp控件。。。不懂。。。

62,262

社区成员

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

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

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

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