前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用DataGrid动态绑定DropDownList

使用DataGrid动态绑定DropDownList

作者头像
Java架构师必看
发布2020-07-21 11:40:10
8460
发布2020-07-21 11:40:10
举报
文章被收录于专栏:Java架构师必看

简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候数据库

简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为DropDownList,并且根据正常情况下显示的值自动变换DropDownList中所选的值,然后保存选择后的值到数据库或XML文件,其实要做到这样的功能并不难,只要我们学会使用DataGrid的DataGrid1_ItemDataBound事件就行了,跟我来做个例子。

        //检索数据库的函数           public DataSet GetZcbd()           {             try            {             DataSet ds=new DataSet();                string searchString="select id,yy,bj from zc";             da=new OleDbDataAdapter(searchString,conn);             da.Fill(ds,"yy");                  return ds;            }            catch            {             return null;                }             }

         //绑定DataGrid            private void BindGrid()           {            DataSet ds = new DataSet();            ds = us.GetZcbd();            if (ds!=null)            {             this.DataGrid1.DataSource = ds;             this.DataGrid1.DataBind();            }            else            {             msg.Alert("加载数据错误!",Page);            }           }         绑定好DataGrid以后,设定模板列,让其正常显示下为Label,并绑定为数据库中一ID值,在编辑状态下为DropDownList,并绑定为数据库中一Name值,我们现在要做的就是当我们选择编辑时根据Label的值自动从数据库中取出编号为ID值的姓名,并用DropDownList默认选中。(注释:为了方便大家学习,我给出一个简单代码的例子,供大家参考)

<?xml:namespace prefix = asp />          private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)             {              if (e.Item.ItemType == ListItemType.EditItem)              {                  DataRowView drv = (DataRowView)e.Item.DataItem;               string current = drv["label1"].ToString();               DropDownList ddl = (DropDownList)e.Item.FindControl("ddl");               ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(current));              }              if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem))          {               Label t = (System.Web.UI.WebControls.Label)e.Item.FindControl("label1");               string current = this.BindDDL(int.Parse(t.Text));               e.Item.Cells[1].Text = current;              }             }

            private string BindDDL(int ddd)             {              string sss = "";              if (ddd==1)              {               sss="张三";               return sss;              }              else              {                  sss="李四";               return sss;              }             }

   注释:msg为一个类似WinForm的messagebox对话框,不必理会。可以使用label.Text代替

本文由来源 21aspnet,由 system_mush 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档