0

有人可以帮我从 Eric Hynds 的 jQuery MultiSelect 中获取选定的选项,并使用 razor 语法将它们插入到 sdf 文件中

这是我的 Razor + HTML 代码——我使用 webmatrix startersite 作为模板

@{  var db = Database.Open("StarterSite");
    var selectQueryString = "SELECT * FROM Details where team like 'EMT'";
    }
<script src="~/Scripts/jquery.ms.js">
</script>
<script type="text/javascript">
    $(function ()
    {
        $("select").multiselect();
    });
    $(function ()
    {
        $("input[type=submit]").button();
    });


</script>
<link href="~/Content/ms.css" rel="stylesheet" type="text/css">


<form method="post">




    <select multiple id="all" name="all" multiple="Multiple">
                @{foreach(var row in db.Query(selectQueryString))
          {
            <option>@row.fname</option>
          }

         }
    </select>

        <input type="submit" value="Send Report" id="Repot" />

</form>
4

2 回答 2

1

您可以在单击时将项目添加到选定选项的数组中,然后使用该数组供以后使用。请参阅各种事件的文档

click:选中或取消选中复选框时触发。js $("#multiselect").on("multiselectclick", function(event, ui) { /* event: 原始事件对象 ui.value: 复选框的值 ui.text: 复选框的文本 ui.checked:输入是否被选中或未选中(布尔值)*/});

像这样的东西

$("select").multiselect({
    click: function(event, ui){
        if(ui.checked){//if checked
          ...push the value into array
        }
        else {//if unchecked
          ...remove that value from array
        }
    }
});

更新

在他们的网站上提到了。(搜索“我如何...?”)

检索所有选定的值?

最简单的方法是在选择框上调用 val():

var values = $("select").val();

使用多选 API 也可以完成相同的操作。调用 getChecked 方法并映射一个新数组:

var array_of_checked_values = $("select").multiselect("getChecked").map(function(){
   return this.value;    
}).get();
于 2013-04-16T08:26:18.063 回答
1

这对您的项目来说可能有点太晚了,但它希望能帮助其他人。

我在更新中使用了更简单的方法:

    var values = $("select").val(); 

因此,如果您检查了选项 2、4 和 6,“值”将是这样的字符串:“2,4,6”。如果您正在开发 MVC 项目,则需要将此字符串保存在表单的隐藏字段中,否则控制器将无权访问它。在我的代码中,我使用“关闭”事件将输出(即 2、4、6)写入一个名为“输出”的隐藏文本框。

一些代码片段:

在表单上创建一个隐藏字段:

    @Html.Hidden("output", null)

在初始多选定义中定义“关闭”事件处理程序:

    <script type='text/javascript'>
        $('select').multiselect(function() {
           //your code
           close: function(event, ui){
               var values = $('select').val();
               $('#output').val(values);
               // you can inspect the value using alert(values); 
           },
           // your code
           // your code
        });
    </script>

现在在您的编辑操作的 post back 部分,form["output"] 等于 "2,4,6"。

如何使用它来更新数据库取决于项目中的许多参数。如果您一直坚持 MVC 模式指南,您只需要在控制器的 Edit 操作中刷新您的模型,然后使用修改后的模型调用 update(或 put)方法。

希望这可以帮助。

谢谢

纳赛尔。

于 2014-07-12T04:13:01.790 回答