【问题标题】:Remove list from drop down menu after selected previously先前选择后从下拉菜单中删除列表
【发布时间】:2012-09-04 09:33:19
【问题描述】:

在我的页面中,有 3 个下拉菜单。

Dropdown 1 : 用于存储从 CarTab 检索到的汽车模型到数据库 (SQL)

下拉菜单 2:用于存储用户名

Dropdown 3 : 用于存储盘号

所有下拉菜单的功能,都是相互关联的。假设管理员在下拉列表 1 中选择 Honda Vios,下拉列表 2 将显示之前仅预订 Honda Vios 的用户名。然后在下拉3中,它将显示汽车的车牌号。例如,在 CarTab 中,有 6 辆本田 vios,当然这些车有不同的车牌号。正确的?因此,下拉 3 将向管理员显示所选汽车的车牌号。

管理员在下拉菜单 1 中选择 Honda Vios,下一个下拉菜单 2 将显示选择 Honda vios 的用户列表,管理员选择用户 A,车牌号为 SGH 12BC。然后管理员点击保存按钮并将其保存到数据库中的新表中。

<td>Car Model</td>
<td class="style21">
<asp:DropDownList ID="DropDownList1" runat="server" Height="42px" Width="146px" 
AutoPostBack="True">
<asp:ListItem>Please Choose</asp:ListItem>
<asp:ListItem>Honda Vios</asp:ListItem>
<asp:ListItem>Honda Civic</asp:ListItem>
<asp:ListItem>Honda City</asp:ListItem>
<asp:ListItem>Honda Jazz</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="style18">
User</td>
<td class="style19">
<asp:DropDownList ID="DropDownList2" runat="server" 
DataSourceID="SqlDataSource1" DataTextField="Username" 
DataValueField="Username" Height="36px" Width="137px" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:Connection %>" 
SelectCommand="SELECT [Username] FROM [Rsvp] WHERE ([Model] = @Model)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList2" Name="Model" 
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td class="style16">
Plate
</td>
<td class="style17">
<asp:DropDownList ID="DropDownList3" runat="server" 
DataSourceID="SqlDataSource2" DataTextField="Plate" DataValueField="Plate" 
Height="45px" Width="141px" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
ConnectionString="<%$ ConnectionStrings:Connection %>" 
SelectCommand="SELECT [Plate] FROM [CarTab] WHERE ([Model] = @Model)">
</asp:SqlDataSource

问题来了:
如何删除管理员选择的用户名和车牌号?这意味着,当管理员登录时,本田 vios 列表的用户名和车牌号将不会再次出现。我需要帮助。请指导我。

【问题讨论】:

  • 不好意思,我不完全理解,但是您是问如何清除下拉列表?
  • 我要求的值(用户名和车牌号)在之前被选中后不再可用
  • 您的意思是这些值不再可用于当前会话还是应该永久禁用?
  • 好吧,那么您将必须跟踪给定模型的所有用户已被处理,以及给定用户的所有 NumberPlates 已被处理,这可以通过在数据库表。
  • 你能告诉我如何在表格中标记吗?

标签: c# asp.net sql


【解决方案1】:

您可以在数据库上创建一个查找表来跟踪哪些项目需要选择。然后向该表添加一个联接。 像这样的:

SELECT [Username] FROM [Rsvp] join SelectedItems
on [Rsvp].ID =  SelectedItems.ID
WHERE [Model] = @Model and SelectedItems.HasBeenSelected = False

【讨论】:

  • 首先你需要把表放到数据库中。然后,当用户单击保存按钮时,您将插入新的查找表。但上面的查询将是您的新 SelectCommand
  • 是的,您需要将联接添加到查找表中。你了解联接吗?
  • 并非如此。但没关系。我会先尝试做的。 :)
  • @ColorShadow 此链接将帮助您了解联接w3schools.com/sql/sql_join_inner.asp
  • 嘿,它给了我错误。它说无效的对象名称 = selecteditems
猜你喜欢
  • 2019-11-15
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-27
  • 2014-06-12
  • 1970-01-01
  • 2016-11-01
相关资源
最近更新 更多