DetailsView中DropDownList的绑定方式
来源:互联网 发布:western条带分析软件 编辑:程序博客网 时间:2024/04/29 21:40
在通常遇到的dropdownlist绑定一般是同数据库进行交互的。这次在DetailsView中绑定数据应用了其中的onDataBind和onPreRender事件。一般detailsview总数据绑定是放在onDateBind中的。onPreRender()是呈现页面之前最后的修改机会。
其中遇到了几个难点:
1。如何绑定数据
绑定数据时在detailsView中PreRender中实现的,具体代码如下
protected void DetailsView1_PreRender(object sender, EventArgs e) //绑定下拉列表 { if (this.IsPostBack) { if (DetailsView1.CurrentMode == DetailsViewMode.Edit) { String connString = ConfigurationManager.ConnectionStrings["ZtbConnectionString"].ConnectionString.ToString(); SqlConnection conn = new SqlConnection(connString); conn.Open(); try { DropDownList drp_spe = DetailsView1.FindControl("speciality") as DropDownList; //获取dropdownlist HiddenField hdf = DetailsView1.FindControl("HDF_speciality") as HiddenField; //获取hiddenfield string mysql = "select * from TRADE"; SqlDataAdapter da = new SqlDataAdapter(mysql, conn); DataSet ds = new DataSet(); da.Fill(ds, "TRADE"); drp_spe.DataSource = ds.Tables[0].DefaultView; drp_spe.DataValueField = ds.Tables["TRADE"].Columns[1].ColumnName; drp_spe.DataTextField = ds.Tables["TRADE"].Columns[1].ColumnName; drp_spe.SelectedValue = hdf.Value; drp_spe.DataBind(); ds.Dispose(); } catch(Exception ex) { Response.Write("alert(' " + ex.Message.ToString() + "')"); } finally { conn.Close(); } } } }
其中应用了使用findcontrol获取处在编辑状态的detailsview中控件。绑定即可。
2。如何使数据库中的值限制为绑定值
因为是修改相应的数据,我采用了detailsview控件,但在绑定时因为是重新绑定,故而数据并非是数据库中的值。这里用到了hiddenfield保存数据,然后赋给dropdownlist即可。
<asp:TemplateField HeaderText="项目类型" SortExpression="BID_SPECIALITY"> <EditItemTemplate> <asp:DropDownList ID="speciality" runat="server" AutoPostBack="false" ></< span>asp:DropDownList> <asp:HiddenField ID="HDF_speciality" runat="server" Value='<%# eval="">'%#> /> </< span>EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# eval="">'%#> ></< span>asp:Label> </< span>ItemTemplate> <ControlStyle Width="20%" /> </< span>asp:TemplateField>
后台代码为:HiddenField hdf = DetailsView1.FindControl("HDF_speciality") as HiddenField; //获取hiddenfield drp_spe.SelectedValue = hdf.Value;
3。选择下拉列表后值被重新绑定。
现在考虑是因为绑定在PreRender中,导致了双向绑定。解决方法很简单,将ViewState改为False即可。
4。上传修改后的值
在结局了这些问题之后,还是存在在编辑模式中,点击修改后没有修改成功,相应的字段在数据库中为空。应该是没有获取到相应的值。解决方法如下:
protected void DetailsView_OnItemUpdating(object sender, DetailsViewUpdateEventArgs e) { DropDownList d1 = (DropDownList)DetailsView1.FindControl("speciality"); this.SqlDataSource2.UpdateParameters.Add("BID_SPECIALITY",d1.SelectedValue); }
- DetailsView中DropDownList的绑定方式
- DropDownList的数据绑定方式
- 关于DetailsView中使用DropDownList不更新的小发现
- 两种绑定DropDownList数据源的方式
- DropDownList控件的数据绑定方式
- detailsview 在编辑的时候使用dropdownlist
- detailsview和gridview的绑定
- asp.net中实现DetailsView控件下的两个DropDownList级连变动
- DataGrid中DropDownList的动态绑定和触发DropDownList事件
- DataGrid中DropDownList的动态绑定和触发DropDownList事件
- DataGrid中DropDownList 的数据绑定
- DataGrid中DropDownList 的数据绑定
- GridView 中绑定 DropDownList
- GridView中DropDownList绑定
- DropDownList(下拉列表框)绑定数据的方式
- DropDownList 的数据绑定
- 树型dropdownlist的绑定
- dropdownlist值的绑定
- 《JavaScript权威指南(第6版)》诚征广大读者参与初译稿审校活动!
- shopxp网上购物系统v7.4最新注入0day
- .net使用FileUpload上传文件
- 截取字符串
- ASP.NET(C#)中给控件添加客户端js事件
- DetailsView中DropDownList的绑定方式
- linux查看GCC版本
- 《山水白衣》(原创武侠)
- IE9的css hack
- android (12)
- 如何在RH下查看gtk版本
- VS开发工具与调试技巧整理
- 软件安装和部署
- 利用 Objetive-c Category 特性 更换 UINavigationBar 背景