【发布时间】:2011-05-19 14:31:14
【问题描述】:
当用户编辑行时,我想在我的 GridView 中将一个字段显示为 DropDownList。 DropDownList 将预先填充两个值,“Yes”和“No”,根据用户选择的值,我想设置一个变量。
例子:
我有一个名为 active 的字段。 1 = 活动,0 = 不活动。尽管对于用户,我希望他们将 Active 设置为“是”(1)或“否”(0)。当编辑一行时,他们可以从下拉列表中选择“是”或“否”,它会将变量设置为 1 或 0,因此我可以在 SQL 更新中将其发回。
我找到了这个MSDN article。
但它只告诉我如何从 DataSource 填充 DropDownList,这对我不起作用,因为每个字段都有一个是或否表示活动。即使只是在查看 GridView 时,它也会显示一个下拉列表,而不仅仅是在编辑时。
我希望这是有道理的,谢谢你的帮助。
编辑
这是我现在拥有的代码,它几乎可以像我想要的那样工作。我现在需要做的就是如果 Active 的值为“True”,则将标签文本更改为“Yes”,如果 Active 的值为“False”,则将文本更改为“No”。
<asp:TemplateField HeaderText="Active" SortExpression="Active" >
<ItemTemplate>
<asp:Label ID="lblActive" runat="server" text='<%# Eval("Active") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Bind("Active") %>'>
<asp:ListItem Text="Yes" Value="True"></asp:ListItem>
<asp:ListItem Text="No" Value="False"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
【问题讨论】:
-
感谢所有回复。我还有一个问题,见上文。
-
我将 Eval 值传递给后面代码中的方法来解决问题。
标签: c# asp.net sql gridview drop-down-menu