[英]Display Dropdown When Editing GridView
我想在用户编辑行时在GridView中将字段显示为DropDownList。 DropDownList将预先填充两个值,“是”和“否”,并且取决于用户选择的值,我想设置变量。
例:
我有一个名为active的字段。 1 =有效,0 =无效。 虽然对于用户我希望他们将Active设置为“Yes”(1)或“No”(0)。 当编辑行时,他们可以从下拉列表中选择“是”或“否”,它会将变量设置为1或0,因此我可以在SQL更新中将其发回。
我找到了这篇MSDN文章 。
但它只告诉我如何从DataSource填充DropDownList,这对我不起作用,因为每个字段都有一个yes或no for active。 即使只是在查看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>
您可以添加listitem ...
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Text="Yes" Value="1"></asp:ListItem>
<asp:ListItem Text="No" Value="0"></asp:ListItem>
</asp:DropDownList>
你可以绑定SelectedValue
,它会自动传递DB a 1 or o
。
您不需要rowdatabound,只需将列转换为模板字段即可。
这是迟到的回复,但它会帮助遇到相同场景的其他人。
使用EditTemplate
的Dropdown并使用Label在ItemTemplate
显示选择在msdn post中查看此示例(一直滚动到结尾以获取下拉列表方案)。
在edititem模板中放置一个标签控件(以显示数据库中的当前值)和下拉列表
<asp:Label ID="lbl" runat="server" Text='<%#Eval("authostatus") %>' Visible="false"></asp:Label> <asp:DropDownList ID="Autharisationddl" runat="server"> <asp:ListItem Text="Yes" Value="1"></asp:ListItem> <asp:ListItem Text="No" Value="0"></asp:ListItem> </asp:DropDownList>
在gridview rowdatabound事件中,根据标签控制值设置下拉值。
if ((e.Row.RowState & DataControlRowState.Edit) > 0) { Label lbl= (Label)e.Row.FindControl("lbl"); DropDownList ddl= (DropDownList)e.Row.FindControl("ddl"); if (lbl!= null) { if (lbl.Text == "1") ddl.SelectedValue = "1"; else if (lbl.Text == "0") ddl.SelectedValue = "0"; } }
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.