在.aspx中
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="295px">
<Columns>
<asp:TemplateField HeaderText="状态">
<ItemTemplate>
<asp:DropDownList runat="server" DataValueField="state" ID="DropDownList1"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在.aspx.cs中
DropDownList myDropDownList = (DropDownList)this.GridView1.FindControl("DropDownList1");
myDropDownList 值一直为null
在智能提示中也找不到DropDownList1
因为GridView是一个数据绑定控件,在给他数据之后,他会生成很多行,所以如果你直接访问DropDownList1的话,你认为你拿到的是哪一行的这个DropDownList呢?这样显然是不行的,你应该在ItemDataBound事件的处理中再使用FindControl方法去寻找