在asp.net中过滤gridview [英] filter gridview in asp.net
本文介绍了在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屋!
查看全文