1

我有一个带有编辑功能的gridview。在性别列中,我有一个下拉列表,应该给我两个替代的 Herr/Frau 并正确绑定选定的值。

目前,只要我在数据库中同时显示这两个值,它就可以完美运行。我的意思是我必须在 db 中至少有一个男性客户和一个女性客户。如果我所有的客户都是男性,我的下拉列表中只有替代的“Herr”。

谁能解释我如何解决这个问题,所以我可以选择将 Herr 编辑为 Frau,而无需任何客户在 db 中具有 Frau 值。

我必须对我的选择做出一些改变,我认为因为此刻我只收集了不同的性别价值观。

这里有一些代码:

<asp:TemplateField HeaderText="Anrede" SortExpression="Gender">
            <EditItemTemplate>
                <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="SqlDataSource1" DataTextField="Gender" DataValueField="Gender" SelectedValue='<%# Bind("Gender") %>'>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:EventConnectionString %>" SelectCommand="SELECT DISTINCT [Gender] FROM [Customer]"></asp:SqlDataSource>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("Gender") %>'></asp:Label>
            </ItemTemplate>
4

2 回答 2

1

代替

"SELECT DISTINCT [Gender] FROM [Customer]"

"SELECT 'Herr' [Gender] UNION ALL SELECT 'Frau' [Gender]"

这不会查找源表中存在的内容。它硬编码所需的项目。

您想添加“Fräulein”吗?没问题。利用

"SELECT 'Herr' [Gender] UNION ALL SELECT 'Frau' [Gender] UNION ALL SELECT 'Fräulein' [Gender]"

这当然是一个丑陋的解决方法。您根本不应该通过询问事实表来填充您的下拉列表。询问包含“先生”和“夫人”或“先生”和“女士”等值并按区域标准对它们进行排序的维度表似乎更合理。

于 2013-08-21T13:42:19.423 回答
0

您从一个单独的参考表中填充下拉列表,该参考表包含诸如性别、头衔等允许的值。这简化了根据需要添加更多选项的过程。目前我从事社会关怀案例管理系统的工作,性别可以是男性、女性、未知或未定义。

于 2013-08-21T12:56:45.850 回答