我正在尝试在我的 View 中实现一个 CheckBoxList,并在列表中获取选定的复选框值列表。
我尝试了这个 link 中的示例, 但我无法获取选定的选中列表项。
我的看法
@foreach (var item in Model)
{
<tr>
<td align="center" class="Text_nocolor singleCheckbox">
<input type="checkbox" class="checkbox" value="@item.ProductID" name="selectedObjects"/>
@Html.HiddenFor(modelItem => item.ProductName)
</td>
<td align="center" class="Text_nocolor" id="myimage">
<img src="@Url.Content(item.Imageurl)" width="40px" height="40px" title="@item.ProductName" alt="Product" class="myimage" style="border-style:none;"/>
</td>
<td align="left" class="Text_nocolor">
@Html.DisplayFor(modelItem => item.ProductName)
</td>
</tr>
}
@Html.ActionLink(" ", "Checkout", new { controller = "Checkout", UserID = Request.QueryString["UserID"], Partnerid = Request.QueryString["Partnerid"] }, new { @class = "btnCheckout" })
Controller 代码(索引):
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
public IList<CartModel> GetCartDetails(string id, string partnerid)
{
List<CartModel> CartDetails = new List<CartModel>();
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from tablename where [User ID]='" + id + "' and [Partner ID]='" + partnerid + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
CartModel cartInfo = new CartModel();
cartInfo.ProductName = dt.Rows[i]["Product Name"].ToString();
cartInfo.Imageurl = "~/Handler.ashx?Pid=" + dt.Rows[i]["Product ID"].ToString() + "&Imgid=1&Partnerid=" + partnerid;
CartDetails.Add(cartInfo);
}
}
con.Close();
}
return CartDetails;
}
public ActionResult Index()
{
id = Request.QueryString["UserID"];
partnerid = Request.QueryString["Partnerid"];
IList<CartModel> objshop = new List<CartModel>();
objshop = GetCartDetails(id, partnerid);
ViewBag.Categories = objshop.ToList();
return View(objshop.ToList());
}
public ActionResult Checkout(string id, string partnerid, int[] categories)
{
string id = Request.QueryString["UserID"];
string partnerid = Request.QueryString["Partnerid"];
//How to get the selected checked list items as a list.
return View();
}
有什么建议吗?
最佳答案
最后我通过 Webgrid 得到了一个复选框列表。
引用这个博客 http://weblogs.asp.net/imranbaloch/archive/2011/09/13/webgrid-helper-with-check-all-checkboxes.aspx
@grid.GetHtmlWithSelectAllCheckBox(tableStyle: "webGrid",
headerStyle: "header",
checkBoxValue: "ProductID",
columns: grid.Columns(
grid.Column(columnName: "", format: @<text><img src="@Url.Content(item.Imageurl)" class="image" alt="Image "/></text>, style: "txtalignleft"),
grid.Column(columnName: "ProductName", style: "txtalignleft"),
grid.Column(columnName: "Quantity", style: "txtcenter"),
grid.Column("Edit", " ", style: "txtalignleft", format: @<a href="@Url.Action("Index", "Cart", new { UserID = Request.QueryString["UserID"], partnerid = Request.QueryString["Partnerid"] })"><img
alt="edititem" style="vertical-align: middle; text-align: justify; border-style: none;"
height="17px" src="../../Images/edit.png" title="Edit" id="imgEdit" /></a>),
grid.Column(columnName: "Rate", style: "txtalign"),
grid.Column(columnName: "Price", style: "txtalign")
))
关于c# - Asp.Net MVC4 中的复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13418488/