很急!高分求救!!GridView中DropDownlist的怪异问题!!! 本帖最后由 BlueSF 于 2012-12-22 16:18:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 前台代码:<div id="detaildiv" runat="server" class="naiyouList2" style="width:983px; height: 529px; overflow-x: auto; overflow-y: auto;" onscroll="scrollup('detaildiv', 'divheader') "> <asp:GridView ID="grdMeisai" runat="server" AutoGenerateColumns="False" ShowHeader="False" Width="966px" BorderStyle="Solid" BorderColor="#AEC9E3" BorderWidth="1px" TabIndex="29" CssClass="cssImeInactive"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:DropDownList ID="ddlKaikeiNendo" runat="server"></asp:DropDownList> </ItemTemplate> <ItemStyle Width="74px" HorizontalAlign="Center" /> </asp:TemplateField </Columns> </asp:GridView></div> ddlKaikeiNendo = CType(e.Row.FindControl("ddlKaikeiNendo"), DropDownList)这边加个ddlKaikeiNendo.Items.Clear();看看 ddlKaikeiNendo.Items.AddRange(mDropDownDSource)mDropDownDSource这个是哪来的 用if(!ispXXXXX)或 赋值前 置空 mDropDownDSource是ListItem数组,Dropdownlist的数据源。Clear试过了,不好用。加载的数据源是没有问题的,问题出在让Dropdownlist中的某一项选择,给 ddlKaikeiNendo.SelectedIndex赋值,改变的不是当前行的Dropdownlist,而是GridView中所有Dropdownlist。 每次赋值改变的都是GridView中所有的Dropdownlist,这点很诡异。 以我的经验,在gridview中的dropdwonlist控件不能用绑定给其赋值,得一个一个加入gvw.Items.Insert(0, "a"); 取出datalist的rows.count用for循环,每一样就是row[i].FindControl ddlKaikeiNendo.Items.AddRange(mDropDownDSource)你这里没有做区分吧?所有的绑定都是这个数据源,并且最后FindByValue的值也是一样的。最后肯定都是同一个数据。 问题解决了,按照9楼的提示,重新写了Dropdownlist的数据绑定方式。ddlKaikeiNendo.Items.Clear()For i As Integer = 0 To mDropDownDSource.Length - 1 ddlKaikeiNendo.Items.Add(New ListItem(mDropDownDSource(i).Text, mDropDownDSource(i).Value))Next这样就没有问题了。谢谢大家了! 导航条点击后变色 纯JS的 带CHECKBOX的树==========================我标题很长================================= 这个项目得多少? 流读取问题,高手请进 RadioButton 如何取得其属性值 web视频问题 运算符“/”无法应用于“object”和“int”类型的操作数 10分相求(生成含有动态内容的html文件)技术...... 能设置DetailsView的编辑框使能适应多行文本? vs2010的新特性。。 怎么通过域名访问内网IIS 未能加载文件或程序集"Interop.SWFToImage"或它的一个依赖
<div id="detaildiv" runat="server" class="naiyouList2" style="width:983px; height: 529px; overflow-x: auto; overflow-y: auto;" onscroll="scrollup('detaildiv', 'divheader') ">
<asp:GridView ID="grdMeisai" runat="server" AutoGenerateColumns="False" ShowHeader="False" Width="966px" BorderStyle="Solid" BorderColor="#AEC9E3" BorderWidth="1px" TabIndex="29" CssClass="cssImeInactive">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlKaikeiNendo" runat="server"></asp:DropDownList>
</ItemTemplate>
<ItemStyle Width="74px" HorizontalAlign="Center" />
</asp:TemplateField
</Columns>
</asp:GridView>
</div>
这边加个ddlKaikeiNendo.Items.Clear();看看
ddlKaikeiNendo.Items.AddRange(mDropDownDSource)mDropDownDSource这个是哪来的
或 赋值前 置空
mDropDownDSource是ListItem数组,Dropdownlist的数据源。
Clear试过了,不好用。加载的数据源是没有问题的,问题出在让Dropdownlist中的某一项选择,给 ddlKaikeiNendo.SelectedIndex赋值,改变的不是当前行的Dropdownlist,而是GridView中所有Dropdownlist。
你这里没有做区分吧?
所有的绑定都是这个数据源,并且最后FindByValue的值也是一样的。最后肯定都是同一个数据。
ddlKaikeiNendo.Items.Clear()
For i As Integer = 0 To mDropDownDSource.Length - 1
ddlKaikeiNendo.Items.Add(New ListItem(mDropDownDSource(i).Text, mDropDownDSource(i).Value))
Next
这样就没有问题了。
谢谢大家了!