下面的代码是绑定到我的asp.net gridview的部分。但即使使用Text =“Male”或Text =“Female”,我也无法获得任何ListItems来显示文本值。整个网格绑定到从数据库填充的对象列表。每个网格列都绑定到数据库中的数据列。任何帮助将不胜感激。
<asp:TemplateField HeaderText="Gender">
<EditItemTemplate>
<asp:RadioButtonList ID="rlGender" runat="server" RepeatDirection="Vertical" SelectedValue='<%# bool.Parse(Eval("GenderS").ToString()) %>'><asp:ListItem Value="True" >Male</asp:ListItem><asp:ListItem Value="False">Female</asp:ListItem></asp:RadioButtonList>
</EditItemTemplate>
<ItemTemplate>
<asp:RadioButtonList ID="rlGender" runat="server" RepeatDirection="Vertical" SelectedValue='<%# bool.Parse(Eval("GenderS").ToString()) %>'><asp:ListItem Value="True">Male</asp:ListItem><asp:ListItem Value="False">Female</asp:ListItem></asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
答案 0 :(得分:0)
在 ItemTemplate 中,最好将值保存在不需要编辑的控件中。当网格进入编辑模式时, EditItemTemplate 中的控件将可见。在那里你可以改变价值。应通过处理gridview rowupdating事件将更改保存在数据源中。
Label
可用于在ItemTemplate
中显示只读文字。在Label的Text
属性中,您可以直接引用提供Male
或Female
文字的列。
Èxample就是这样的:
<asp:TemplateField HeaderText="Gender">
<EditItemTemplate>
<asp:RadioButtonList ID="rlGender" runat="server" RepeatDirection="Vertical" SelectedValue='<%# bool.Parse(Eval("GenderS").ToString()) %>'>
<asp:ListItem Value="True" Text = "Male" />
<asp:ListItem Value="False" Text="Female" />
</asp:RadioButtonList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblGender" runat="server" Text='<%# Eval("GenderS").ToString() %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
或使用 ItemTemplate 始终显示RadioButtonList
<asp:TemplateField HeaderText="Gender">
<ItemTemplate>
<asp:RadioButtonList ID="rlGender" runat="server" RepeatDirection="Vertical" SelectedValue='<%# bool.Parse(Eval("GenderS").ToString()) %>'>
<asp:ListItem Value="True" Text = "Male" />
<asp:ListItem Value="False" Text="Female" />
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>