一. 在grideview中加一列textbox,如图:零售价列
点击grideview右上角三角形选择编辑模板,从工具箱中拖入一个textbox。生成如下代码: <asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
将数据库数据绑定到TextBox1:
Text='<%# Eval("retail_price","{0:F2}") %>'
代码变成:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("retail_price","{0:F2}") %>'
></asp:TextBox> </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
【1。Eval和Bind的区别
绑定表达式
<%# Eval("字段名") %>
<%# Bind("字段名") %>
区别 1。eval是只读数据,bind是可更新的.
2.当对次表达式操作时候,必须用Eval 如<%# Eval("字段名").ToString().Trim() %>
2.若GridView中绑定列里面 设置 内容格式 DataFormateString ={0:d} ,则 必须把 属性 HtmlCode 设置为false,否则无法起作用;
Eval 单向绑定:数据是只读的
Bind 双向绑定:数据可以更改,并返回服务器端,服务器可以处理更改后的数据,如存入数据库.
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:D}")%> //----2006年10月27日
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:F}")%>//----2006年10月27日 8:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:G}")%>//----2006-10-27 8:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:M}")%>//----10月27日
-<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:R}")%>//----Fri, 27 Oct 2006 08:31:44GMT
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:T}")%>//----8:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:U}")%>//----2006年10月27日 0:31:44
----<%# DataBinder.Eval(Container.DataItem,"dateandtime","{0:Y}")%>//----2006年10月】
用户修改零售价后,就应该将零售价再记录到数据库:(思路: 循环判断GRID里的模板检查ID为 textbox1 的文本框控件!然后 把里面的文本复制到字符串A里面!)
后台代码如下:
for (int i = 0; i < this.materiel_gvw.Rows.Count; i++)
{
TextBox T = (materiel_gvw.Rows[i].FindControl("TextBox1")) as TextBox;
money =Convert.ToDecimal(T.Text);
int materiel_id = Convert.ToInt32(GridView1.DataKeys[i].Value.ToString());
materielBLL.Update(money, materiel_id, store_id, out error_message);
}
这样,数据就更新到数据库啦~