2

午後の皆さん、

データベースから「アクション」のリストを表示するために使用しているグリッドビューがあります。

このグリッドビューに接続されているドロップダウン リストがあります。これにより、ユーザーはドロップダウン リストの「アクション ステータス」(「割り当て済み」、「進行中」、「完了」) を介してデータをフィルター処理できます。これは完全に正常に動作します....

私がやろうとしているのは、ユーザーが別のフィルター オプションを使用できるようにすることです。ユーザー名でもフィルター処理したいと考えています。このためにデータソースとドロップダウン リストを設定しましたが、グリッドビューに接続できるデータソースは 1 つだけですか?

ユーザーがユーザー名と「アクションステータス」でフィルタリングできるようにする方法について、誰か提案がありますか?

覗く必要がある場合は、ここに私のコードがあります....

         <asp:SqlDataSource ID="dsActions" runat="server" 
                ConnectionString="<%$ ConnectionStrings:SMCConnectionString %>" 
                SelectCommand="Populate_grdAllActions_Filter" 
                SelectCommandType="StoredProcedure">
            <SelectParameters>
                <asp:ControlParameter ControlID="ddFilterStatus" Name="ActionStatusID" 
                    PropertyName="SelectedValue" Type="Int32" />
            </SelectParameters>
         </asp:SqlDataSource>

         <asp:SqlDataSource ID="dsActionsByUser" runat="server" 
               ConnectionString="<%$ ConnectionStrings:SMCConnectionString %>" 
               SelectCommand="Populate_grdAllActions_Filter_By_User" 
               SelectCommandType="StoredProcedure">
             <SelectParameters>
                 <asp:ControlParameter ControlID="ddFilterUsers" Name="UserID" 
                     PropertyName="SelectedValue" Type="Int32" />
             </SelectParameters>
         </asp:SqlDataSource>

    <asp:SqlDataSource ID="dsFilterList" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SMCConnectionString %>" 
            SelectCommand="SELECT * FROM [ActionStatus]"></asp:SqlDataSource>

    <asp:SqlDataSource ID="dsFilterUsers" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SMCConnectionString %>" 
            SelectCommand="SELECT * FROM [UserSimpleList]"></asp:SqlDataSource>

    <table style="width: 400px">
        <tr>
            <td colspan="2" style="height: 25px"><b>Filter Options:</b></td>
        </tr>
        <tr>
            <td style="width: 158px">
                Select Action Status:</td>
            <td>
                <asp:DropDownList ID="ddFilterStatus" runat="server"  
                    DataTextField="ActionStatus" DataValueField="ActionStatusID" 
                 AutoPostBack="True" DataSourceID="dsFilterList"></asp:DropDownList>
            </td>
        </tr>
         <tr>
            <td style="width: 158px">
                Select Actions by User:</td>
            <td>
                   <asp:DropDownList ID="ddFilterUsers" runat="server"  
                    DataTextField="UserFullName" DataValueField="UserID" 
                 AutoPostBack="True" DataSourceID="dsFilterUsers"></asp:DropDownList></td>
        </tr>
     </table>

     <br/>

      <asp:GridView ID="grdActions" runat="server" AutoGenerateColumns="False" 
            DataSourceID="dsActions" CssClass="mGrid" 
            PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt" 
           AllowPaging="True" PageSize="6" DataKeyNames="ActionID" Width="68%" >
      <AlternatingRowStyle CssClass="alt" />
    <Columns>
          <asp:HyperLinkField DataNavigateUrlFields="ActionID" DataNavigateUrlFormatString="~/UpdateAction.aspx?Edit={0}"
                DataTextField="ActionID" HeaderText="Action ID" >
                <HeaderStyle HorizontalAlign="Center" Wrap="True" />
                <ItemStyle HorizontalAlign="Center" />
            </asp:HyperLinkField>
        <asp:BoundField DataField="Action" HeaderText="Action" 
            SortExpression="Action" >
          <HeaderStyle HorizontalAlign="Center" />
          </asp:BoundField>
        <asp:BoundField DataField="Owner" HeaderText="Owner" 
            SortExpression="Owner">
          <HeaderStyle HorizontalAlign="Center" />
          <ItemStyle Wrap="False" />
          </asp:BoundField>
        <asp:BoundField DataField="TargetDate" HeaderText="Target Date" 
            SortExpression="TargetDate"  DataFormatString="{0:dd-MM-yyyy} " >
          <HeaderStyle HorizontalAlign="Center" Wrap="True" />
          <ItemStyle Wrap="False" />
          </asp:BoundField>
        <asp:BoundField DataField="Action Status" HeaderText="Action Status" 
            SortExpression="Action Status" >
          <HeaderStyle HorizontalAlign="Center" Wrap="True" />
          <ItemStyle Wrap="False" />
          </asp:BoundField>
     </Columns>
       <PagerStyle CssClass="pgr" />
    </asp:GridView>

どんな助けでも、事前に大いに感謝します。

よろしくベティ

4

2 に答える 2

0

コードビハインドパートのddFilterStatus_SelectIndexChanged()イベントで、適切な「アクションステータス」を確認し、次のようにデータソースを選択します。

 if(ddFilterStatus.SelectedValue == someid1)
 {

     grdActions.DataSource =  appropriate datasource

 }
 else
 {
      grdActions.DataSource =  appropriate datasource
  }
  grdActions.DataBind()

お役に立てれば...

于 2012-05-30T15:48:55.047 に答える
0

ユーザーが選択したオプションを特定し、データソースを aspx で配線するのではなく、コード ビハインドで設定できます。

疑似コードは、FilterUsers ドロップダウンが選択された場合、Action By User データ ソースにバインドすると仮定します。

if(IsPostBack){
    if(ddlFilterUsers.SelectedValue <> ""){
        grdActions.DataSource = dsActionsByUser;
        dsFilterUsers.DataBind();
        //etc
    }
}
于 2012-05-30T15:43:36.860 に答える