使用ViewState在Listview上应用过滤器

太阳

我已经使用ListView控件从数据库中获取产品列表。我也将结果存储在viewstate中。现在要应用复选框中的过滤器以获取精炼的数据,我想知道如何使用viewState值?

例如,加载页面时,如果在“音乐”类别中找到10个产品。现在,如果用户应用filter(Bluetooth),则仅应显示“音乐”中带有蓝牙的产品。

现在它正在工作,就像在页面加载上一样。获取了音乐类别。然后,如果我检查了蓝牙过滤器,则所有与音乐无关的蓝牙产品都会出现。

Private Sub shop_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim pageName As String = Me.Page.RouteData.Values("category").ToString()
    if not Me.isPostback Then
     Try
            query = select * from products where category = '"+pageName+"'
            Dim conString As String = ConfigurationManager.ConnectionStrings("conio").ConnectionString
            Dim con As New MySqlConnection(conString)
            Dim cmd As New MySqlCommand(query)
            con.Open()
            Dim da As New MySqlDataAdapter()
            cmd.Connection = con
            da.SelectCommand = cmd
            Dim dt As New DataTable()
            da.Fill(dt)
            ViewState("Data") = dt
            products.DataSource = dt
            products.DataBind()
            catHeading.Text = pageName
            itemCount.Text = dt.Rows.Count.ToString
            con.Close()
        Catch ex As Exception
            Response.Write(ex)
        End Try
    End If
End Sub

过滤应用代码

Private Sub priceFilter_SelectedIndexChanged(sender As Object, e As EventArgs) Handles priceFilter.SelectedIndexChanged
    'buildWhereClause()

    Dim price As String = priceFilter.SelectedValue.ToString()
    Dim dt As DataTable = DirectCast(ViewState("Data"), DataTable)
    Dim dr As DataRow() = dt.[Select]((Convert.ToString("category='") & price) + "'")
    products.DataSource = dt
    products.DataBind()
    itemCount.Text = dt.Rows.Count.ToString
End Sub

我只想当用户应用任何过滤器时,就应该从viewstate(Data)而不是整个表中进行检查。

SuRaj Creator

将类别保存在viewstate中,并在选中时,将类别保存为字符串,并在查询中加入该字符串。像这样的东西

    Dim constr As String = ConfigurationManager.ConnectionStrings("connectionstring").ConnectionString
    Dim query As String = "select * from table"
    Dim joiner As String = ""

    Dim condition As String = String.Empty
    Dim whereClause As String = String.Empty
    Dim priceCondition As String = String.Empty
    Try
        Dim category As String = ViewState("Data")
        condition = String.Concat(condition, joiner, String.Format("{0}", category))
        If joiner = "" Then joiner = ""


        joiner = " where "
        If Not String.IsNullOrEmpty(condition) Then
            whereClause = String.Concat(whereClause, joiner, String.Format("category Like '%{0}%'", condition))
            joiner = " and "
        End If


        'Same way you can apply multiple filters as you want & then get that in one string like below

        Dim masterClause As String = String.Empty
        masterClause = (query & whereClause)

        Using con As New MySqlConnection(constr)
            Using cmd As New MySqlCommand(masterClause)
                Using sda As New MySqlDataAdapter(cmd)
                    cmd.Connection = con
                    Using dt As New DataTable()
                        sda.Fill(dt)
                        products.DataSource = dt
                        products.DataBind()
                        itemCount.Text = dt.Rows.Count.ToString
                    End Using
                End Using
            End Using
        End Using

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Excel表上应用过滤器的公式

来自分类Dev

是否可以在SKEmitterNode上应用过滤器?

来自分类Dev

如何在Datagridview上应用过滤器?

来自分类Dev

在Hibernate的链接表上应用过滤器

来自分类Dev

在数据帧上应用过滤器函数

来自分类Dev

Spark - 使用列名在 Dataframe 上应用过滤器/映射不起作用

来自分类Dev

GPUImage-使用NSMutableArray串联应用过滤器

来自分类Dev

使用条件格式应用过滤器框

来自分类Dev

在 couchDB 上使用过滤器不起作用

来自分类Dev

FFmpeg顺序应用过滤器

来自分类Dev

AngularJS默认应用过滤器

来自分类Dev

转换后应用过滤器

来自分类Dev

对结果应用过滤器

来自分类Dev

将公式仅应用于Google表格上的可见单元格(使用过滤器)

来自分类Dev

使用过滤器遍历列表

来自分类Dev

使用过滤器代替foreach

来自分类Dev

使用过滤器更新角度?

来自分类Dev

使用过滤器分组

来自分类Dev

Laravel 4,如何在Route :: controller()上应用过滤器

来自分类Dev

Vue JS在输入字段中的v模型上应用过滤器

来自分类Dev

在captureOutput上应用过滤器非常耗时,并且在特定时间后崩溃

来自分类Dev

如何在python中的2D数组/列表上应用过滤器功能

来自分类Dev

Primefaces DataTable在单个列中的多个字段上应用过滤器

来自分类Dev

如何在字典数组中的内部数组上应用过滤器?

来自分类Dev

在表上应用过滤器后如何将数据绑定到下拉列表

来自分类Dev

如何在 chrome.windows.onFocusChanged 上应用过滤器

来自分类Dev

基于 ADF 中的自定义 Pojo 列表在 af:table 上应用过滤器

来自分类Dev

使用过滤器将数据框应用于不同变量

来自分类Dev

无法使用ng-option对angular js中的json对象应用过滤器

Related 相关文章

热门标签

归档