2017-09-13 7 views
0

私はSQLデータベースから特定のデータを表示するASP.NET Webアプリケーションを作成しています。 DropDownListから選択したデータを表示する3つのデータソースを作成しました。C#ASP.NETアプリケーションComboBoxがGridViewにバインドされました表示の問題

私のDropDownListは以下のようにC#サイドでコーディング:ASP.NET側での

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      string SourceName = DropDownList1.SelectedValue; 
      GridView1.DataSourceID = SourceName; 
      GridView1.DataBind(); 
     } 

のDropDownListコーディング:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 
      <asp:ListItem Value="DataSource_Gerneral">General Overview</asp:ListItem> 
      <asp:ListItem Value="DataSource_Portfolio">Portfolio</asp:ListItem> 
      <asp:ListItem Value="DataSource_ErrorLog">Error Log</asp:ListItem> 
     </asp:DropDownList> 

を以下のようにASP.NETサイドにコーディンググリッドビューは、次のとおりです。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderStyle="Inset" CellPadding="4" DataKeyNames="Call_Sign" DataSourceID= "DataSource_Gerneral" Font-Size="Smaller" ForeColor="#333333" GridLines="None" Height="16px" Width="155px" AllowPaging="True" AllowSorting="True" ClientIDMode="AutoID" HorizontalAlign="Justify" PageSize="100" OnSelectedIndexChanged="GridView1_SelectedIndexChanged1"> 
      <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 



      <Columns> 
       <asp:BoundField DataField="Call_Sign" HeaderText="Call_Sign" ReadOnly="True" SortExpression="Call_Sign" /> 
       <asp:BoundField DataField="Current_Price" HeaderText="Current_Price" SortExpression="Current_Price" /> 
       <asp:BoundField DataField="Stock_Market" HeaderText="Stock_Market" SortExpression="Stock_Market" /> 
      </Columns> 



      <EditRowStyle BackColor="#999999" /> 
      <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
      <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
      <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
      <SortedAscendingCellStyle BackColor="#E9E7E2" /> 
      <SortedAscendingHeaderStyle BackColor="#506C8C" /> 
      <SortedDescendingCellStyle BackColor="#FFFDF8" /> 
      <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 
     </asp:GridView> 

私は実際にデータソースIDを変更していることを確認するためにドロップダウンリストをテストしました。それは適切に働いていた。ただし、選択されたビューがドロップダウンリストに選択されている場合、グリッドビューは同じままです。私は新しいデータを表示する方法を探していました。私は何かが欠けていますか?私はそれが実行時にgridviewを変更する単なるコード行であることを期待しています。

答えて

0

私は巨大なゲームチェンジャーを見落としました。私は正しい場所を変更していませんでした。すべての情報が同じデータベースから来ているため。 command.CommandText文を変更するには、3つのif文を記述しなければなりませんでした。 ex。

If (DataName == "DataSource_General) 
{ 
    command.CommandText = " ... Select..."; 
} 

If (DataName == "DataSource_Portfolio") 
{ 
    command.CommandText = " ... Select ..."; 
} 

これを行うと、データが正しく表示されます。あなたはまたでそれを呼び出し、コマンドテキストにDropDownListコントロールItemValueを設定し、これを行うことができます。第二の方法これにより

String selectStatement = DropDownList.SelectedValue.ToString(); 
command.CommandText = selectStatement; 

、あなたはクリーンなコードを達成します。

関連する問題