本帖最后由 BlueSF 于 2012-12-22 16:18:49 编辑

解决方案 »

  1.   

    前台代码:
    <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>
      

  2.   

     ddlKaikeiNendo = CType(e.Row.FindControl("ddlKaikeiNendo"), DropDownList)
    这边加个ddlKaikeiNendo.Items.Clear();看看
     ddlKaikeiNendo.Items.AddRange(mDropDownDSource)mDropDownDSource这个是哪来的
      

  3.   

    用if(!ispXXXXX)
    或 赋值前 置空
      

  4.   


    mDropDownDSource是ListItem数组,Dropdownlist的数据源。
    Clear试过了,不好用。加载的数据源是没有问题的,问题出在让Dropdownlist中的某一项选择,给 ddlKaikeiNendo.SelectedIndex赋值,改变的不是当前行的Dropdownlist,而是GridView中所有Dropdownlist。
      

  5.   

    每次赋值改变的都是GridView中所有的Dropdownlist,这点很诡异。
      

  6.   

    以我的经验,在gridview中的dropdwonlist控件不能用绑定给其赋值,得一个一个加入gvw.Items.Insert(0, "a");
      

  7.   

    取出datalist的rows.count用for循环,每一样就是row[i].FindControl
      

  8.   

    ddlKaikeiNendo.Items.AddRange(mDropDownDSource)
    你这里没有做区分吧?
    所有的绑定都是这个数据源,并且最后FindByValue的值也是一样的。最后肯定都是同一个数据。
      

  9.   

    问题解决了,按照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
    这样就没有问题了。
    谢谢大家了!