【问题标题】:How to set dynamic where clause with JSStore while working with IndexedDB?使用 IndexedDB 时如何使用 JSStore 设置动态 where 子句?
【发布时间】:2018-03-09 15:05:21
【问题描述】:

我正在使用 JsStore 包装器处理 IndexedDB。当我直接在 Where 块中设置列名时,代码中的一切正常,但如果我将其设为动态,如下面的代码所示,则代码不起作用。

var searchValueType = $('input:radio[name=searchValueType]:checked').val();
var searchValue = $("#searchValue").val();                
var column1 = 'Name';
var whereClause = column1+':'+searchValue;
alert ("where clause >> "+whereClause);
DbConnection.select({
    From: "Student",    
     Where: {
        whereClause
      },
    }, 
    function (students) {
    var HtmlString = "";
    students.forEach(function (student) {
        HtmlString += "<tr ItemId=" + student.Id + "><td>" +
            student.Name + "</td><td>" +
            student.Gender + "</td><td>" +
            student.Country + "</td><td>" +
            student.City + "</td><td>" +
            "<a href='#' class='edit'>Edit</a></td>" +
            "<td><a href='#' class='delete''>Delete</a></td>";
    }, function (error) {
        console.log(error);
    })
    $('#tblGrid tbody').html(HtmlString);
    });

【问题讨论】:

    标签: javascript indexeddb


    【解决方案1】:

    问题在代码中清晰可见,Where 需要一个对象,但您在大括号内传递了一个字符串。

    您需要在变量中创建对象并将其分配给jsstore的Where选项。

    请检查以下代码-

    var searchValueType = $('input:radio[name=searchValueType]:checked').val();
    var searchValue = $("#searchValue").val();
    //var column1 = 'Name';
    //var whereClause = column1+':'+searchValue;
    
    //alert ("where clause >> "+whereClause);
    
    // Where clause is now an object
    var whereClause = {
        Name: searchValue
    }
    DbConnection.select({
        From: "Student",
        Where: whereClause,
    }, function(students) {
        var HtmlString = "";
        students.forEach(function(student) {
            HtmlString += "<tr ItemId=" + student.Id + "><td>" +
                student.Name + "</td><td>" +
                student.Gender + "</td><td>" +
                student.Country + "</td><td>" +
                student.City + "</td><td>" +
                "<a href='#' class='edit'>Edit</a></td>" +
                "<td><a href='#' class='delete''>Delete</a></td>";
        }, function(error) {
            console.log(error);
        })
        $('#tblGrid tbody').html(HtmlString);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 2012-10-02
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      相关资源
      最近更新 更多