繁体   English   中英

如何获得一个下拉列表以在gridview中显示选定的值?

[英]how to get a dropdownlist to show a selected value in a gridview?

你们中的有些人可能会觉得这很愚蠢,但我缺乏使该页面正常工作的知识。 我正在尝试为注册客户创建一个页面,以查看他们的预订以及预订号,并增加其他要求。 我从工具箱中选择了dropdownlist和gridview,并使用sqldatasource建立连接并从数据库中获取选择值。 我的问题是,当我从下拉列表中进行选择时,什么都没有发生,并且gridview向我显示了所有客户的信息。 如何获取选定的值以显示在gridview中? 请帮助!我正在使用asp.net c#,这是我拥有的代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/masterpage.master" AutoEventWireup="true" CodeFile="CustomerBooking.aspx.cs" Inherits="Default2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 <p>
     Booking ID 
     <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Customer_ID" DataValueField="Booking_ID">
         <asp:ListItem>booking_ID</asp:ListItem>
     </asp:DropDownList>
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Booking]"></asp:SqlDataSource>
 </p>
 <p>
     <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Booking_ID" DataSourceID="SqlDataSource2">
         <Columns>
             <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
             <asp:BoundField DataField="Booking_ID" HeaderText="Booking_ID" InsertVisible="False" ReadOnly="True" SortExpression="Booking_ID" />
             <asp:BoundField DataField="Customer_ID" HeaderText="Customer_ID" SortExpression="Customer_ID" />
             <asp:BoundField DataField="Cus_FName" HeaderText="Cus_FName" SortExpression="Cus_FName" />
             <asp:BoundField DataField="Cus_LName" HeaderText="Cus_LName" SortExpression="Cus_LName" />
             <asp:BoundField DataField="Bo_num_stay" HeaderText="Bo_num_stay" SortExpression="Bo_num_stay" />
             <asp:BoundField DataField="Bo_Start_Date" HeaderText="Bo_Start_Date" SortExpression="Bo_Start_Date" />
             <asp:BoundField DataField="Bo_End_Date" HeaderText="Bo_End_Date" SortExpression="Bo_End_Date" />
             <asp:BoundField DataField="Bo_status" HeaderText="Bo_status" SortExpression="Bo_status" />
             <asp:BoundField DataField="Bo_extra_req" HeaderText="Bo_extra_req" SortExpression="Bo_extra_req" />
             <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
         </Columns>
     </asp:GridView>
     <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Booking] WHERE [Booking_ID] = ?" InsertCommand="INSERT INTO [Booking] ([Booking_ID], [Customer_ID], [Cus_FName], [Cus_LName], [Bo_num_stay], [Bo_Start_Date], [Bo_End_Date], [Bo_status], [Bo_extra_req], [UserName]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Booking]" UpdateCommand="UPDATE [Booking] SET [Customer_ID] = ?, [Cus_FName] = ?, [Cus_LName] = ?, [Bo_num_stay] = ?, [Bo_Start_Date] = ?, [Bo_End_Date] = ?, [Bo_status] = ?, [Bo_extra_req] = ?, [UserName] = ? WHERE [Booking_ID] = ?">
         <DeleteParameters>
             <asp:Parameter Name="Booking_ID" Type="Int32" />
         </DeleteParameters>
         <InsertParameters>
             <asp:Parameter Name="Booking_ID" Type="Int32" />
             <asp:Parameter Name="Customer_ID" Type="Int32" />
             <asp:Parameter Name="Cus_FName" Type="String" />
             <asp:Parameter Name="Cus_LName" Type="String" />
             <asp:Parameter Name="Bo_num_stay" Type="Int32" />
             <asp:Parameter Name="Bo_Start_Date" Type="DateTime" />
             <asp:Parameter Name="Bo_End_Date" Type="DateTime" />
             <asp:Parameter Name="Bo_status" Type="String" />
             <asp:Parameter Name="Bo_extra_req" Type="String" />
             <asp:Parameter Name="UserName" Type="String" />
         </InsertParameters>
         <UpdateParameters>
             <asp:Parameter Name="Customer_ID" Type="Int32" />
             <asp:Parameter Name="Cus_FName" Type="String" />
             <asp:Parameter Name="Cus_LName" Type="String" />
             <asp:Parameter Name="Bo_num_stay" Type="Int32" />
             <asp:Parameter Name="Bo_Start_Date" Type="DateTime" />
             <asp:Parameter Name="Bo_End_Date" Type="DateTime" />
             <asp:Parameter Name="Bo_status" Type="String" />
             <asp:Parameter Name="Bo_extra_req" Type="String" />
             <asp:Parameter Name="UserName" Type="String" />
             <asp:Parameter Name="Booking_ID" Type="Int32" />
         </UpdateParameters>
     </asp:SqlDataSource>
 </p>
 </asp:Content>

这是因为您没有在gridview数据源select命令中使用参数。 尝试这个

SelectCommand="SELECT * FROM [Booking] WHERE Booking_ID = @Id"

并在您的SQLDataSource中添加selectparameters

<selectparameters>
    <asp:controlparameter name="Id" controlid="DropDownList1" propertyname="SelectedValue"/>
</selectparameters>

编辑

您需要修改gridview数据源(在这种情况下为SqlDataSource2)。 所以应该看起来像这样

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<p>
 Booking ID 
 <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Customer_ID" DataValueField="Booking_ID">
     <asp:ListItem>booking_ID</asp:ListItem>
 </asp:DropDownList>
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Booking]"></asp:SqlDataSource>
 </p>
 <p>
 <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Booking_ID" DataSourceID="SqlDataSource2">
     <Columns>
         <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
         <asp:BoundField DataField="Booking_ID" HeaderText="Booking_ID" InsertVisible="False" ReadOnly="True" SortExpression="Booking_ID" />
         <asp:BoundField DataField="Customer_ID" HeaderText="Customer_ID" SortExpression="Customer_ID" />
         <asp:BoundField DataField="Cus_FName" HeaderText="Cus_FName" SortExpression="Cus_FName" />
         <asp:BoundField DataField="Cus_LName" HeaderText="Cus_LName" SortExpression="Cus_LName" />
         <asp:BoundField DataField="Bo_num_stay" HeaderText="Bo_num_stay" SortExpression="Bo_num_stay" />
         <asp:BoundField DataField="Bo_Start_Date" HeaderText="Bo_Start_Date" SortExpression="Bo_Start_Date" />
         <asp:BoundField DataField="Bo_End_Date" HeaderText="Bo_End_Date" SortExpression="Bo_End_Date" />
         <asp:BoundField DataField="Bo_status" HeaderText="Bo_status" SortExpression="Bo_status" />
         <asp:BoundField DataField="Bo_extra_req" HeaderText="Bo_extra_req" SortExpression="Bo_extra_req" />
         <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
     </Columns>
 </asp:GridView>
 <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Booking] WHERE [Booking_ID] = ?" InsertCommand="INSERT INTO [Booking] ([Booking_ID], [Customer_ID], [Cus_FName], [Cus_LName], [Bo_num_stay], [Bo_Start_Date], [Bo_End_Date], [Bo_status], [Bo_extra_req], [UserName]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Booking] WHERE Booking_ID = @Id" UpdateCommand="UPDATE [Booking] SET [Customer_ID] = ?, [Cus_FName] = ?, [Cus_LName] = ?, [Bo_num_stay] = ?, [Bo_Start_Date] = ?, [Bo_End_Date] = ?, [Bo_status] = ?, [Bo_extra_req] = ?, [UserName] = ? WHERE [Booking_ID] = ?">
     <selectparameters>
         <asp:controlparameter name="Id" controlid="DropDownList1" propertyname="SelectedValue"/>
     </selectparameters>
     <DeleteParameters>
         <asp:Parameter Name="Booking_ID" Type="Int32" />
     </DeleteParameters>
     <InsertParameters>
         <asp:Parameter Name="Booking_ID" Type="Int32" />
         <asp:Parameter Name="Customer_ID" Type="Int32" />
         <asp:Parameter Name="Cus_FName" Type="String" />
         <asp:Parameter Name="Cus_LName" Type="String" />
         <asp:Parameter Name="Bo_num_stay" Type="Int32" />
         <asp:Parameter Name="Bo_Start_Date" Type="DateTime" />
         <asp:Parameter Name="Bo_End_Date" Type="DateTime" />
         <asp:Parameter Name="Bo_status" Type="String" />
         <asp:Parameter Name="Bo_extra_req" Type="String" />
         <asp:Parameter Name="UserName" Type="String" />
     </InsertParameters>
     <UpdateParameters>
         <asp:Parameter Name="Customer_ID" Type="Int32" />
         <asp:Parameter Name="Cus_FName" Type="String" />
         <asp:Parameter Name="Cus_LName" Type="String" />
         <asp:Parameter Name="Bo_num_stay" Type="Int32" />
         <asp:Parameter Name="Bo_Start_Date" Type="DateTime" />
         <asp:Parameter Name="Bo_End_Date" Type="DateTime" />
         <asp:Parameter Name="Bo_status" Type="String" />
         <asp:Parameter Name="Bo_extra_req" Type="String" />
         <asp:Parameter Name="UserName" Type="String" />
         <asp:Parameter Name="Booking_ID" Type="Int32" />
     </UpdateParameters>
 </asp:SqlDataSource>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM