2008-11-13 57 views
0

我創建了2個綁定到SQL DB然後拉起GridView的下拉列表。但是,更具體的是有沒有辦法讓3個用戶選擇框,然後有一個Gridview顯示?我想有一個快速有效的方法來做到這一點沒有問題。我創建了具有autopostback的前兩個DDL,但工作不正常。有什麼建議麼?ASP.net Forms/DropDownList幫助

<asp:Label ID="CustomerNumberLabel" runat="server" Text="Customer Number " Width="125px"></asp:Label> 
    <asp:DropDownList ID="CustomerNumber" runat="server" AutoPostBack="True" 
     DataSourceID="ADDRDataSource" DataTextField="SACSNO" 
     DataValueField="SACSNO" AppendDataBoundItems="True"> 
     <asp:ListItem Text="Select a Customer" Value="" Selected="True" /> 
    </asp:DropDownList><br /> 
    <asp:SqlDataSource ID="ADDRDataSource" runat="server" 
     ConnectionString="<%$ ConnectionStrings:iSeriesHistoryConnectionString %>" 
     SelectCommand="SELECT [SACSNO] FROM [ADDR] WHERE ([SARP#1] = @column1)"> 
     <SelectParameters> 
      <asp:SessionParameter Name="column1" SessionField="userName" Type="Decimal" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
    <asp:Label ID="ShipToNumberLabel" runat="server" Text="Ship-to Location " Width="125px"></asp:Label> 
    <asp:DropDownList ID="ShipToNumber" runat="server" 
     DataSourceID="ADDRShipToNumberDataSource" DataTextField="SASHNM" 
     DataValueField="SASHNM" AutoPostBack="True"> 
     <asp:ListItem Text="Select Ship-To Location" Value="" Selected="True" /> 
    </asp:DropDownList> 
    <asp:SqlDataSource ID="ADDRShipToNumberDataSource" runat="server" 
     ConnectionString="<%$ ConnectionStrings:iSeriesHistoryConnectionString %>" 
     SelectCommand="SELECT [SASHNM], [SASAD1], [SASAD2], [SASCTY], [SACSNO], [SASHST], [SASZIP] FROM [ADDR] WHERE ([SACSNO] = @SACSNO)"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="CustomerNumber" Name="SACSNO" 
       PropertyName="SelectedValue" Type="Decimal" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
    <br /><br /> 
    <asp:FormView ID="FormView1" runat="server" 
     DataSourceID="ADDRShippingDataSource" Width="400px"> 
     <EditItemTemplate> 
      SACSNO: 
      <asp:TextBox ID="SACSNOTextBox" runat="server" Text='<%# Bind("SACSNO") %>' /> 
      <br /> 
      SASHNM: 
      <asp:TextBox ID="SASHNMTextBox" runat="server" Text='<%# Bind("SASHNM") %>' /> 
      <br /> 
      SASAD1: 
      <asp:TextBox ID="SASAD1TextBox" runat="server" Text='<%# Bind("SASAD1") %>' /> 
      <br /> 
      SASAD2: 
      <asp:TextBox ID="SASAD2TextBox" runat="server" Text='<%# Bind("SASAD2") %>' /> 
      <br /> 
      SASCTY: 
      <asp:TextBox ID="SASCTYTextBox" runat="server" Text='<%# Bind("SASCTY") %>' /> 
      <br /> 
      SASHST: 
      <asp:TextBox ID="SASHSTTextBox" runat="server" Text='<%# Bind("SASHST") %>' /> 
      <br /> 
      SASZIP: 
      <asp:TextBox ID="SASZIPTextBox" runat="server" Text='<%# Bind("SASZIP") %>' /> 
      <br /> 
      <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
       CommandName="Update" Text="Update" /> 
      &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
       CausesValidation="False" CommandName="Cancel" Text="Cancel" /> 
     </EditItemTemplate> 
     <InsertItemTemplate> 
      SACSNO: 
      <asp:TextBox ID="SACSNOTextBox" runat="server" Text='<%# Bind("SACSNO") %>' /> 
      <br /> 
      SASHNM: 
      <asp:TextBox ID="SASHNMTextBox" runat="server" Text='<%# Bind("SASHNM") %>' /> 
      <br /> 
      SASAD1: 
      <asp:TextBox ID="SASAD1TextBox" runat="server" Text='<%# Bind("SASAD1") %>' /> 
      <br /> 
      SASAD2: 
      <asp:TextBox ID="SASAD2TextBox" runat="server" Text='<%# Bind("SASAD2") %>' /> 
      <br /> 
      SASCTY: 
      <asp:TextBox ID="SASCTYTextBox" runat="server" Text='<%# Bind("SASCTY") %>' /> 
      <br /> 
      SASHST: 
      <asp:TextBox ID="SASHSTTextBox" runat="server" Text='<%# Bind("SASHST") %>' /> 
      <br /> 
      SASZIP: 
      <asp:TextBox ID="SASZIPTextBox" runat="server" Text='<%# Bind("SASZIP") %>' /> 
      <br /> 
      <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" 
       CommandName="Insert" Text="Insert" /> 
      &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" 
       CausesValidation="False" CommandName="Cancel" Text="Cancel" /> 
     </InsertItemTemplate> 
     <ItemTemplate> 
      Customer Detail<br /> 
      <br /> 
      <table class="style1" width="35px"> 
       <tr> 
        <td class="style2" align="center" > 
         Address Line 1</td> 
        <td class="style3" align="center" > 
         <asp:Label ID="SASAD1Label" runat="server" Text='<%# Bind("SASAD1") %>' /> 
        </td> 
       </tr> 
       <tr> 
        <td class="style2" align="center" > 
         Address Line 2</td> 
        <td class="style3" align="center" > 
         <asp:Label ID="SASAD2Label" runat="server" Text='<%# Bind("SASAD2") %>' /> 
        </td> 
       </tr> 
       <tr> 
        <td class="style2" align="center"> 
         City</td> 
        <td class="style3" align="center" > 
         <asp:Label ID="SASCTYLabel" runat="server" Text='<%# Bind("SASCTY") %>' /> 
        </td> 
       </tr> 
       <tr> 
        <td align="center" class="style2"> 
         State</td> 
        <td class="style3" align="center" > 
         <asp:Label ID="SASHSTLabel" runat="server" Text='<%# Bind("SASHST") %>' /> 
        </td> 
       </tr> 
       <tr> 
        <td align="center" class="style2"> 
         Zip</td> 
        <td class="style3" align="center" > 
         <asp:Label ID="SASZIPLabel" runat="server" Text='<%# Bind("SASZIP") %>' /> 
        </td> 
       </tr> 
      </table> 
      <br /> 
     </ItemTemplate> 
    </asp:FormView> 
    <asp:SqlDataSource ID="ADDRShippingDataSource" runat="server" 
     ConnectionString="<%$ ConnectionStrings:iSeriesHistoryConnectionString %>" 
     SelectCommand="SELECT [SACSNO], [SASHNM], [SASAD1], [SASAD2], [SASCTY], [SASHST], [SASZIP] FROM [ADDR] WHERE ([SASHNM] = @SASHNM)"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="ShipToNumber" Name="SASHNM" 
       PropertyName="SelectedValue" Type="String" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 

回答

0

您可以關閉的AutoPostBack所有DropDownLists,並添加一個按鈕叫查找的東西,如在查找Button_Click事件如下:

ADDRShippingDataSource.SelectParameters.Clear() 

If ShipToNumber.SelectedValue <> "" Then 
    ADDRShippingDataSource.SelectParameters.Add("SASHNM", ShipToNumber.SelectedValue) 
End If 

If CustomerNumber.SelectedValue <> "" Then 
    ADDRShippingDataSource.SelectParameters.Add("SACSNO", CustomerNumber.SelectedValue) 
End If 

ADDRShippingDataSource.DataBind() 

你選擇命令將需要更新在您的數據源中包含附加標準:

SELECT [SACSNO], [SASHNM], [SASAD1], [SASAD2], [SASCTY], [SASHST], [SASZIP] FROM [ADDR] WHERE (@SASHNM IS NULL OR [SASHNM] = @SASHNM) OR (@SACSNO IS NULL OR [SACSNO] = @SACSNO)