我创建了一个页面,我可以通过实体框架搜索商店详细信息 我在表格中添加了一列复选框。 通过搜索按钮提交后,我想保留“checked = True”复选框。
实现这一目标的推荐方法是什么?
我尝试了以下方法,但点击提交后复选框“取消选中” 1. https://www.sitepoint.com/quick-tip-persist-checkbox-checked-state-after-page-reload/
查看如下:
@using (Html.BeginForm())
{
<p>
Find by name: @Html.TextBox("SearchString")
<input type="submit" name ="StoreIndexButton" value="Search" />
</p>
}
<table class="table" id="displayresult">
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.market)
</td>
<td>
@Html.DisplayFor(modelItem => item.status)
</td>
<td>
@Html.DisplayFor(modelItem => item.oper)
</td>
<td>
@Html.DisplayFor(modelItem => item.operator)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id=item.store1 })
</td>
<td>
@Html.CheckBox("selected",new { value = item.store1, id="selected"+item.store1.ToString() })
</td>
</tr>
}
</table>
控制器如下:
public ActionResult Index(string StoreIndexButton,string searchString)
{
var AR_stores = (from m in db.stores
select m).Take(10);
string[] selectedList = Request.Form.GetValues("selected");
if (!String.IsNullOrEmpty(searchString) && StoreIndexButton =="Search")
{
AR_stores = (from m in db.stores
select m).Where(s => s.name.Contains(searchString));
}
return View(AR_stores);
}
模型如下:
using System;
using System.Collections.Generic;
public partial class store
{
public int store1 { get; set; }
public string name { get; set; }
public string market { get; set; }
public string status { get; set; }
public string oper { get; set; }
public string operator { get; set; }
}
答案 0 :(得分:0)
我会这样:
在partial class上添加一个flag参数。
db.sensors.aggregate([
{
"$addFields": {
"yearMonthDay": {
"$switch": {
"branches": [
{
"case": { "$lt": [ { "$hour": "$date" }, 8 ] },
"then": { /* subtract one day from a measurement at < 08:00 */
"$dateToString": {
"format": "%Y-%m-%d",
"date": {
"$subtract": [
"$date",
1000 * 60 * 60 * 24
]
}
}
}
},
{
"case": { "$gte": [ { "$hour": "$date" }, 8 ] },
"then": { /* return actual date */
"$dateToString": {
"format": "%Y-%m-%d",
"date": "$date"
}
}
}
]
}
},
"isNight": {
"$or": [
{ "$gte": [ { "$hour": "$date" }, 21 ] },
{ "$lt": [ { "$hour": "$date" }, 8 ] }
]
}
}
},
{ "$match": { "isNight": true } },
{
"$group": {
"_id": "$yearMonthDay",
"count": { "$sum": 1 }
}
}
])
默认情况下,这将为false,并且不会选择任何选项。
提交功能后,您有所选项目的列表,您可以将它们设置为选中(checkStatus将为true)。
答案 1 :(得分:0)
MVC没有像ASP.Net WebForms这样的ViewState(不确定viewstate是一个功能还是缺点)。因此,您必须使用隐藏字段或变量保存复选框的状态。你可以用jquery和ajax
来试试这个