gridview中的dropdownlist隔行数据绑定不上,求解

问题描述

这样写会发生隔一行数据绑定不上DropDownListUserddl=(DropDownList)e.Row.FindControl("JJY");if(e.Row.RowState==DataControlRowState.Edit){if(e.Row.RowType==DataControlRowType.DataRow){DataSetUsersDs=userbll.GetAllUsers();Userddl.DataSource=UsersDs.Tables[0];Userddl.DataTextField="UserName";Userddl.DataValueField="UserID";Userddl.DataBind();Userddl.Items.Insert(0,newListItem("请选择","0"));Userddl.SelectedValue=((HiddenField)e.Row.FindControl("HidJJY")).Value;}if(Userddl.SelectedValue==""&&(DropDownList)e.Row.FindControl("JJY")!=null){if(e.Row.RowType==DataControlRowType.DataRow){DataSetUsersDs=userbll.GetAllUsers();Userddl.DataSource=UsersDs.Tables[0];Userddl.DataTextField="UserName";Userddl.DataValueField="UserID";Userddl.DataBind();Userddl.Items.Insert(0,newListItem("请选择","0"));Userddl.SelectedValue=((HiddenField)e.Row.FindControl("HidJJY")).Value;}}elseif(Userddl.SelectedIndex!=0&&(DropDownList)e.Row.FindControl("JJY")!=null){if(e.Row.RowType==DataControlRowType.DataRow){DataSetUsersDs=userbll.GetAllUsers();Userddl.DataSource=UsersDs.Tables[0];Userddl.DataTextField="UserName";Userddl.DataValueField="UserID";Userddl.DataBind();Userddl.SelectedValue=((HiddenField)e.Row.FindControl("HidJJY")).Value;//未将对象引用设置到对象的实例。}}}else{if(e.Row.RowState==DataControlRowState.Edit){if(Userddl.SelectedIndex!=0&&(DropDownList)e.Row.FindControl("JJY")!=null){if(e.Row.RowState==DataControlRowState.Selected){DataSetUsersDs=userbll.GetAllUsers();Userddl.DataSource=UsersDs.Tables[0];Userddl.DataTextField="UserName";Userddl.DataValueField="UserID";Userddl.DataBind();Userddl.SelectedValue=((HiddenField)e.Row.FindControl("HidJJY")).Value;//未将对象引用设置到对象的实例。}}}}

解决方案

解决方案二:
求高手指点,急啊
解决方案三:
你这个代码混乱的把眼睛都看花了……就看见同样的一段代码在反复的执行
解决方案四:
引用2楼starfd的回复:

你这个代码混乱的把眼睛都看花了……就看见同样的一段代码在反复的执行

要是能执行的话我就不做那么多判断了,所以我就只能把所有可能的判断全写上了,好多判断都是false,所以就只能这样了,有好的方法的话还请大神讲讲
解决方案五:
出现的问题就和上面两张图一样,一个dropdownlist里面有值,另一个没有值,也就是说另一个的数据绑定没有绑定,断点也没有找到具体的原因
解决方案六:
你为啥要判断if(e.Row.RowState==DataControlRowState.Edit)这个呢,而且你的ifelse里面都是判断你的这个,你没发觉else里面的if永远进不去吗?你就只要下面这段看什么结果if(e.Row.RowType==DataControlRowType.DataRow){DropDownListUserddl=(DropDownList)e.Row.FindControl("JJY")asDropDownList;if(Userddl!=null){DataSetUsersDs=userbll.GetAllUsers();Userddl.DataSource=UsersDs.Tables[0];Userddl.DataTextField="UserName";Userddl.DataValueField="UserID";Userddl.DataBind();Userddl.Items.Insert(0,newListItem("请选择","0"));Userddl.SelectedValue=((HiddenField)e.Row.FindControl("HidJJY")).Value;}}

解决方案七:
引用5楼starfd的回复:

你为啥要判断if(e.Row.RowState==DataControlRowState.Edit)这个呢,而且你的ifelse里面都是判断你的这个,你没发觉else里面的if永远进不去吗?你就只要下面这段看什么结果if(e.Row.RowType==DataControlRowType.DataRow){DropDownListUserddl=(DropDownList)e.Row.FindControl("JJY")asDropDownList;if(Userddl!=null){DataSetUsersDs=userbll.GetAllUsers();Userddl.DataSource=UsersDs.Tables[0];Userddl.DataTextField="UserName";Userddl.DataValueField="UserID";Userddl.DataBind();Userddl.Items.Insert(0,newListItem("请选择","0"));Userddl.SelectedValue=((HiddenField)e.Row.FindControl("HidJJY")).Value;}}

Userddl.SelectedValue=((HiddenField)e.Row.FindControl("HidJJY")).Value;这句话会报错,未将对象引用设置到对象的实例。
解决方案八:
那你先把这段去掉,然后你这个HidJJY到底什么情况下才会有?
解决方案九:
引用7楼starfd的回复:

那你先把这段去掉,然后你这个HidJJY到底什么情况下才会有?

这行去掉绑定正常,但是默认成数据库中的值就不能实现了。这个HidJJY在编辑的状态时才会有用,为了让dropdownlist的默认值为数据库中的数据,所以才添加的这个控件。
解决方案十:
if(e.Row.RowType==DataControlRowType.DataRow){DropDownListUserddl=(DropDownList)e.Row.FindControl("JJY")asDropDownList;if(Userddl!=null){DataSetUsersDs=userbll.GetAllUsers();Userddl.DataSource=UsersDs.Tables[0];Userddl.DataTextField="UserName";Userddl.DataValueField="UserID";Userddl.DataBind();Userddl.Items.Insert(0,newListItem("请选择","0"));HiddenFieldhd=e.Row.FindControl("HidJJY")asHiddenField;if(hd!=null){Userddl.SelectedValue=hd.Value;}}}

时间: 2024-10-03 11:13:39

gridview中的dropdownlist隔行数据绑定不上,求解的相关文章

gridview中添加dropdownlist后实现数据库更新

问题描述 gridview中添加dropdownlist后实现数据库更新 背景描述:gridview已经通过选择数据源实现了数据绑定,并选择了编辑操作,并在gridview中添加dropdownlist. 目的:点击编辑,然后选择dropdownlist,然后在数据库中更新该row(只需要更新update dropdownlist所选),并在当前gridview中显示最终结果. DropDownList ddl = GridView1.Rows[e.RowIndex].FindControl("

GridView中的DropDownList联动

问题描述 通过GridView中的DropDownList来控制某列的内容输出,请问如何实现!编辑状态的时候,我想通过配件ID的droplistdown来控制配件名称的自动输出!<asp:BoundFieldDataField="委托保养单号"HeaderText="委托保养单号"ReadOnly="True"/><asp:TemplateFieldHeaderText="配件ID"><EditI

多层级联-.NET GridView中的DropDownList级联问题?

问题描述 .NET GridView中的DropDownList级联问题? 有三张表 所在系统表 主键 SystemID Name 工种表 主键 ClassID Name SystemID 岗位表 主键 PositionID Name ClassID 实现三层级联 谢谢. 解决方案 没看懂要做什么啊.......,级联很简单啊,第三个listbox根据第二个选中的classid获取数据,第二个listbox根据第一个选择的systemid获取数据 解决方案二: 参考: http://www.cn

如何在GridView中套用Dropdownlist?(vb.net环境)

问题描述 我现在有两个表emp[id,name,sex,mz(民族)],mz[id,mz],其中在emp表中的mz字段存的是mz表里的ID,现在我建立一个视图来关联这两个表,用gridview显示出来,我想在gridview中建立一个模板列来套用dropdownlist显示mz字段,并可以直接修改.更行新,请问要如何实现?从网上找了很多例子都是C#环境的,自己看不懂! 解决方案 解决方案二:c#与vb.net只是语法不同,

GridView中的DropDownList使用问题

问题描述 有一个数据表一共以下几个字段:StuNo,StuName,ShuXing1,ShuXing2.需要把这个数据表与GridView控件绑定显示出来,显示界面要求把ShuXing1和ShuXing2合并成一个字段,用下拉菜单的方式表示出来,也就是显示三个字段:StuNo,StuName,ShuXing.遇到的问题:我在GridView中添加了新列TemplateField,在其ItemTemplate中添加了下拉菜单DropDownList控件,但是不知道如何往这个控件绑定数据,因为每条数

gridview中使用dropdownlist的问题~

问题描述 在gridview中使用了dropdownlist功能点击一个button按钮后将dropdownlist中的数据update进数据库但是在页面中无论dropdownlist选择什么始终update进数据库的数据是第一个选项的数值已经检查过每一项的value值正确填写并且不相同.gridview是后台代码绑定的因为要使用session页面只有1个gridview1个button1个dropdownlistbutton代码如下:protectedvoidButton1_Click1(ob

求问我gridview中的dropdownlist更新为什么无法存入数据库?

问题描述 我的代码是这样的protectedvoidGrid_Userresearch_RowUpdating(objectsender,GridViewUpdateEventArgse){stringid=this.Grid_Userresearch.Rows[e.RowIndex].Cells[0].Text.Trim();stringupdatestr=((DropDownList)this.Grid_Userresearch.Rows[e.RowIndex].FindControl("w

GridView中绑定DropDownList并用DropDownList显示对应字段数据;

HeaderTemplateRowDataBound设置GirdView 的 DataKeyNames="Name" 即数据源中的字段,我设置的是:Name:  添加GridView事件: RowDataBound  在事件事首先判断行的类型是不是数据行:因为第一行通常是  HeaderTemplate;(图中的第一行就是表头,如编号,标识码,商品名称....) 在当前行中查换DropDownList的Id;DropDownList ddlInType = e.Row.FindCont

ASP.NET2.0中Gridview中数据操作技巧

asp.net|技巧|数据     Asp.net 2.0中新增的gridview控件,是十分强大的数据展示控件,在前面的系列文章里,分别展示了其中很多的基本用法和技巧(详见<<ASP.NET 2.0中Gridview控件高级技巧>>.<<ASP.NET2.0利用Gridview实现主从关系>>).在本文中,将继续探讨有关的技巧. 一.Gridview中的内容导出到Excel 在日常工作中,经常要将gridview中的内容导出到excel报表中去,在asp.