在 asp.net 中调用 TemplateField DropDownList - 使用 FindControl() 隐藏代码

Call TemplateField DropDownList in asp.net - code behind with FindControl()

这就是我在 GridView 中创建 DropDownListLehrbeginn 的方式。 sss

<asp:TemplateField HeaderText="Lehrbeginn" SortExpression="lehrbeginn" HeaderStyle-Width="40px"> 
       <EditItemTemplate>
            <asp:DropDownList ID="DropDownListLehrbeginn" runat="server"></asp:DropDownList>
       </EditItemTemplate>
       <ItemTemplate>
            <asp:Label ID="LabelLehrbeginn" runat="server" Text='<%# Bind("lehrbeginn") %>'></asp:Label>
       </ItemTemplate>
</asp:TemplateField>

我想像这样用 c# 添加 ListItems:

DropDownListLehrbeginn.Items.Add(new ListItem(DateTime.Now.Year.ToString()));
DropDownListLehrbeginn.Items.Add(new ListItem(DateTime.Now.AddYears(1).Year.ToString()));
DropDownListLehrbeginn.Items.Add(new ListItem(DateTime.Now.AddYears(2).Year.ToString()));
DropDownListLehrbeginn.Items[1].Selected = true;

不幸的是,它不起作用。我该如何解决这个问题? DropDownListLehrbeginn 在后面的代码中不可用

您的代码看起来不错。因为你的下拉列表在另一个元素中,你可能只需要使用这样的东西

DropDownList ddlList = (DropDownList)NameOfGridView.FindControl("DropDownListLehrbeginn");