在 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");
这就是我在 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");