在asp.net中过滤gridview [英] filter gridview in asp.net

查看:131
本文介绍了在asp.net中过滤gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发了一些控件来过滤gridview.网格视图的数据源是从存储过程中选择的.我尝试使用filterexpression和参数.我可以在OnFiltering事件上评估它们,并且filterexpression和参数具有正确的值.但是,Gridview尚未更改其显示.提前谢谢.

数据源:

I have developed some controls to filter a gridview. The datasource of the gridview is selected from a stored procedure. I have tried using the filterexpression and parameters. I can evaluate them on the OnFiltering event and the filterexpression and parameter have the correct value. However the Gridview has not changed its display. Thanks in advance.

datasource:

<asp:SqlDataSource ID="ds_Inst" runat="server"

    ConnectionString="<%$ ConnectionStrings:SAPConfiguration.My.MySettings.SqlConn %>"

    SelectCommand="getInst" InsertCommand="insertInst"

        InsertCommandType="StoredProcedure" SelectCommandType="StoredProcedure"

        UpdateCommand="updateInst" UpdateCommandType="StoredProcedure"

        OldValuesParameterFormatString="original_{0}" EnableCaching="True"

        CacheDuration="600" FilterExpression="Num like '{0}'">
        <FilterParameters>
            <asp:ControlParameter ControlID="dl_filter_Inst" Name="Num"

                PropertyName="SelectedValue"  />
            <asp:ControlParameter ControlID="tb_filter_Name" Name="Name"

                PropertyName="Text" />
            <asp:ControlParameter ControlID="rb_Enabled" Name="Enabled"

                PropertyName="Checked" />
            <asp:ControlParameter ControlID="rb_branchBilling" Name="BranchBilling"

                PropertyName="Checked" />
            <asp:ControlParameter ControlID="dl_filter_DB" Name="DB"

                PropertyName="SelectedValue" />
            <asp:ControlParameter ControlID="dl_MF" Name="MF"

                PropertyName="SelectedValue" />
            <asp:ControlParameter ControlID="dl_center" Name="Center"

                PropertyName="SelectedValue" />
        </FilterParameters>



gridview:



gridview:

<asp:GridView ID="gv_Inst" runat="server" AutoGenerateColumns="False"

DataSourceID="ds_Inst" AllowPaging="True" AllowSorting="True"

    AutoGenerateEditButton="True"

    PageSize="25" CssClass="gridview">
    <AlternatingRowStyle cssclass="altrow" />
<Columns>
    <asp:BoundField DataField="Idx" HeaderText="Idx" SortExpression="Idx"

        InsertVisible="False" visible="false" >
    </asp:BoundField>
    <asp:BoundField DataField="Num" HeaderText="Number" SortExpression="Num"

        ReadOnly="False">
    <ControlStyle CssClass="controlClass" />
    </asp:BoundField>



控制



Control

<asp:DropDownList ID="dl_filter_Inst" runat="server" DataSourceID="ds_Inst"

                DataTextField="Num" DataValueField="Num" width="98%"

                AppendDataBoundItems="true" AutoPostBack="true">
                <asp:ListItem Selected="True" Value="">Show All</asp:ListItem>
                </asp:DropDownList>

推荐答案

ConnectionStrings:SAPConfiguration.My.MySettings.SqlConn %> " span> SelectCommand =" getInst" InsertCommand insertInst" InsertCommandType =" 存储过程" SelectCommandType StoredProcedure" UpdateCommand =" updateInst" UpdateCommandType StoredProcedure" OldValuesParameterFormatString =" 原始文件{0}" EnableCaching 真实" span> CacheDuration =" 600" FilterExpression 数字之类的'{0}'" < FilterParameters > < asp:ControlParameter ControlID =" 名称 数字" span> 属性名称 SelectedValue" / > < asp:ControlParameter ControlID =" 名称 名称" 属性名称 文本" / > < asp:ControlParameter ControlID =" 名称 已启用" 属性名称 已选中" / > < asp:ControlParameter ControlID =" 名称 BranchBilling " 属性名称 已选中" / > < asp:ControlParameter ControlID =" 名称 DB " 属性名称 SelectedValue" / > < asp:ControlParameter ControlID =" 名称 MF " 属性名称 SelectedValue" / > < asp:ControlParameter ControlID =" 名称 中心" 属性名称 SelectedValue" / > < /FilterParameters >
ConnectionStrings:SAPConfiguration.My.MySettings.SqlConn %>" SelectCommand="getInst" InsertCommand="insertInst" InsertCommandType="StoredProcedure" SelectCommandType="StoredProcedure" UpdateCommand="updateInst" UpdateCommandType="StoredProcedure" OldValuesParameterFormatString="original_{0}" EnableCaching="True" CacheDuration="600" FilterExpression="Num like '{0}'"> <FilterParameters> <asp:ControlParameter ControlID="dl_filter_Inst" Name="Num" PropertyName="SelectedValue" /> <asp:ControlParameter ControlID="tb_filter_Name" Name="Name" PropertyName="Text" /> <asp:ControlParameter ControlID="rb_Enabled" Name="Enabled" PropertyName="Checked" /> <asp:ControlParameter ControlID="rb_branchBilling" Name="BranchBilling" PropertyName="Checked" /> <asp:ControlParameter ControlID="dl_filter_DB" Name="DB" PropertyName="SelectedValue" /> <asp:ControlParameter ControlID="dl_MF" Name="MF" PropertyName="SelectedValue" /> <asp:ControlParameter ControlID="dl_center" Name="Center" PropertyName="SelectedValue" /> </FilterParameters>



gridview:



gridview:

<asp:GridView ID="gv_Inst" runat="server" AutoGenerateColumns="False"

DataSourceID="ds_Inst" AllowPaging="True" AllowSorting="True"

    AutoGenerateEditButton="True"

    PageSize="25" CssClass="gridview">
    <AlternatingRowStyle cssclass="altrow" />
<Columns>
    <asp:BoundField DataField="Idx" HeaderText="Idx" SortExpression="Idx"

        InsertVisible="False" visible="false" >
    </asp:BoundField>
    <asp:BoundField DataField="Num" HeaderText="Number" SortExpression="Num"

        ReadOnly="False">
    <ControlStyle CssClass="controlClass" />
    </asp:BoundField>



控制



Control

<asp:DropDownList ID="dl_filter_Inst" runat="server" DataSourceID="ds_Inst"

                DataTextField="Num" DataValueField="Num" width="98%"

                AppendDataBoundItems="true" AutoPostBack="true">
                <asp:ListItem Selected="True" Value="">Show All</asp:ListItem>
                </asp:DropDownList>


最终将变量添加到SPROC并使用以下代码:
Ended up adding variables to SPROC and using this code:
Protected Sub btn_Apply_Click(sender As Object, e As EventArgs) Handles btn_Apply.Click
        gv_Inst.DataBind()
        btn_Clear.Enabled = True
    End Sub

    Protected Sub ds_Inst_Selecting(sender As Object, e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles ds_Inst.Selecting
        '<SelectParameters>
        '    <asp:Parameter Name="num" Type="String" />0
        '    <asp:Parameter Name="name" Type="String" />1
        '    <asp:Parameter Name="dbname" Type="String" />2
        '    <asp:Parameter Name="enable" Type="Boolean" />3
        '    <asp:Parameter Name="disable" Type="Boolean" />4
        '    <asp:Parameter Name="enableBranchBilling" Type="Boolean" />5
        '    <asp:Parameter Name="disableBranchBilling" Type="Boolean" />6
        '    <asp:Parameter Name="mainframe" Type="String" />7
        '    <asp:Parameter Name="center" Type="String" />8
        '  </SelectParameters>

        If cb_Inst.Checked Then
            e.Command.Parameters(0).Value = dl_filter_Inst.SelectedValue
        Else
            e.Command.Parameters(0).Value = "%"
        End If

        If cb_Name.Checked Then
            e.Command.Parameters(1).Value = tb_filter_Name.Text
        Else
            e.Command.Parameters(1).Value = "%"
        End If

        If cb_DB.Checked Then
            e.Command.Parameters(2).Value = dl_filter_DB.SelectedValue
        Else
            e.Command.Parameters(2).Value = "%"
        End If

        If cb_filter_Enable.Checked Then
            If rb_Enabled.Checked Then
                e.Command.Parameters(3).Value = True
                e.Command.Parameters(4).Value = True
            Else
                e.Command.Parameters(3).Value = False
                e.Command.Parameters(4).Value = False
            End If
        Else
            e.Command.Parameters(3).Value = True
            e.Command.Parameters(4).Value = False
        End If

        If cb_filter_BranchBilling.Checked Then
            If rb_branchBilling.Checked Then
                e.Command.Parameters(5).Value = True
                e.Command.Parameters(6).Value = True
            Else
                e.Command.Parameters(5).Value = False
                e.Command.Parameters(6).Value = False
            End If
        Else
            e.Command.Parameters(5).Value = True
            e.Command.Parameters(6).Value = False
        End If

        If cb_MF.Checked Then
            e.Command.Parameters(7).Value = dl_MF.SelectedValue
        Else
            e.Command.Parameters(7).Value = "%"
        End If

        If cb_Center.Checked Then
            e.Command.Parameters(8).Value = dl_center.SelectedValue
        Else
            e.Command.Parameters(8).Value = "%"
        End If
    End Sub


这篇关于在asp.net中过滤gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆