网上看到一篇文章:
=============================华丽的分割线=================================
在TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现。以下是Bind方法的格式,Eval的格式也是和Bind一样的。 Bind("列的名称","显示的格式文")比如我们要取个日期型的数据,在数据库中列名是updated,数值是2008/06/01。但是想2008年06月01日这样显示,我们可以这样来写Bind("updated", "{0:yyyy年MM月dd日}"),Eval也是如此。 2者都能读取数据中的值,并显示。当我们使用编辑更新操作时,Bind能够自动的将修改的值更新到数据库中,并显示出修改后的值。但是用了Eval却只能得到错误画面,新的数据没有更新到数据库中。 从这点看来,Bind方法和Eval方法的区别就是:Bind方法在读取和更新数据这2方面都是可以,但是Eval方法只能读取显示数据。所以,我们在选择Bind方法和Eval方法的时候,必须要有争对性,当数据肯定需要更新操作的时候我们应该使用Bind,只是显示数据,不会有任何操作的就可以使用Eval方法。 在更新操作中我们可以在GridView1_RowUpdating事件中操作,例子如下:protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新行GridViewRow
GridViewRow row = this.GridView1.Rows[e.RowIndex];
//查找更新的控件
DropDownList present = (DropDownList)row.FindControl("ddlPresent");
TextBox price = (TextBox)row.FindControl("txtPrice");
TextBox updated = (TextBox)row.FindControl("txtUpdated");
//更新
e.NewValues["present"] = present.SelectedValue;
e.NewValues["price"] = price.Text;
e.NewValues["updated"] = updated.Text;
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { //更新行GridViewRow GridViewRow row = this.GridView1.Rows[e.RowIndex]; //查找更新的控件 DropDownList present = (DropDownList)row.FindControl("ddlPresent"); TextBox price = (TextBox)row.FindControl("txtPrice"); TextBox updated = (TextBox)row.FindControl("txtUpdated"); //更新 e.NewValues["present"] = present.SelectedValue; e.NewValues["price"] = price.Text; e.NewValues["updated"] = updated.Text; }如果我们能充分理解Bind方法和Eval方法,其实也就没必要向上面那样去写,都是可以自动完成的。上面的方法除了比较复杂的操作才会用到,这也是一个使用技巧。=============================华丽的分割线=================================
<%#Bind ("")%>方法 在数据控件SqlDatasourse配置好修改/更新 语句的时候自动会生成...这个方法可以更新TextBox中的内容..
如果一个int列的内容,我想用一个绑定数据的DropDownList来更新.而且,我想用<%#Bind ("")%>方法.在HTML端我真的不知道怎么写.如果上面的文章所说的,我们充分理解了Bind方法.是不是就简单很多了呢?
=============================华丽的分割线=================================
在TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现。以下是Bind方法的格式,Eval的格式也是和Bind一样的。 Bind("列的名称","显示的格式文")比如我们要取个日期型的数据,在数据库中列名是updated,数值是2008/06/01。但是想2008年06月01日这样显示,我们可以这样来写Bind("updated", "{0:yyyy年MM月dd日}"),Eval也是如此。 2者都能读取数据中的值,并显示。当我们使用编辑更新操作时,Bind能够自动的将修改的值更新到数据库中,并显示出修改后的值。但是用了Eval却只能得到错误画面,新的数据没有更新到数据库中。 从这点看来,Bind方法和Eval方法的区别就是:Bind方法在读取和更新数据这2方面都是可以,但是Eval方法只能读取显示数据。所以,我们在选择Bind方法和Eval方法的时候,必须要有争对性,当数据肯定需要更新操作的时候我们应该使用Bind,只是显示数据,不会有任何操作的就可以使用Eval方法。 在更新操作中我们可以在GridView1_RowUpdating事件中操作,例子如下:protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新行GridViewRow
GridViewRow row = this.GridView1.Rows[e.RowIndex];
//查找更新的控件
DropDownList present = (DropDownList)row.FindControl("ddlPresent");
TextBox price = (TextBox)row.FindControl("txtPrice");
TextBox updated = (TextBox)row.FindControl("txtUpdated");
//更新
e.NewValues["present"] = present.SelectedValue;
e.NewValues["price"] = price.Text;
e.NewValues["updated"] = updated.Text;
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { //更新行GridViewRow GridViewRow row = this.GridView1.Rows[e.RowIndex]; //查找更新的控件 DropDownList present = (DropDownList)row.FindControl("ddlPresent"); TextBox price = (TextBox)row.FindControl("txtPrice"); TextBox updated = (TextBox)row.FindControl("txtUpdated"); //更新 e.NewValues["present"] = present.SelectedValue; e.NewValues["price"] = price.Text; e.NewValues["updated"] = updated.Text; }如果我们能充分理解Bind方法和Eval方法,其实也就没必要向上面那样去写,都是可以自动完成的。上面的方法除了比较复杂的操作才会用到,这也是一个使用技巧。=============================华丽的分割线=================================
<%#Bind ("")%>方法 在数据控件SqlDatasourse配置好修改/更新 语句的时候自动会生成...这个方法可以更新TextBox中的内容..
如果一个int列的内容,我想用一个绑定数据的DropDownList来更新.而且,我想用<%#Bind ("")%>方法.在HTML端我真的不知道怎么写.如果上面的文章所说的,我们充分理解了Bind方法.是不是就简单很多了呢?
解决方案 »
- asp.net 用linkbutton实现从数据库中读取文件名并在新窗口中打开该pdf文档
- System.Web.UI.WebControls.Table的数据转换为“System.Data.DataTable”
- 如何将A页面:将把ID1=a001 ID2=b001传到B页面
- 如何获取POST数据后页面返回的HTML代码
- 关于webpart个性化的问题
- table问题
- 自己写了个<商业银行全员绩效考核系统>,谁有兴趣帮我测试一下?
- 如何刷新一个页面
- GridView中删除某行
- <a href="bbs.aspx?id=<%# DataBinder.Eval。。。。
- 上传文件时怎么更好的控制扩展名?
- 用户控件如何调用BasePage的方法
2.用一个绑定数据的DropDownList的value来代替TextBox来更新数据库中的一条数据的某个int列.既然用TextBox可以用<%#Bind ("")%>方法更新.一个DropDownList的value tostring了以后理论上说也可以更新..
是否有做IsPostBack 之后,数据绑定.
TextBox可以用<%#Bind ("")%>方法更新..DropDownList的value为什么就不能用<%#Bind ("")%>更新..
如果我会了.我立即就回到火星去,这是我在地球的最后一个愿望,麻烦给为满足我.
或者直接不用控件..都可以实现
但我就是想知道用dropDownList来实现<asp:TextBox text='<%#bind("")%>' 一样的功能为什么不行
<asp:ListItem Text=' <%#bind("")%>' Value=' <%#bind("")%>' Selected="True"/>
</asp:DropDownList>这样能实现,但是重复了一个选项,还是要程序 cut掉一个
DropDownList1.SelectedIndex=0