我无法找到解决问题的方法。 这是我正在研究的MVC项目。
在GridView中我该怎么做:Click on row and then click on button to delete this selected or clicked row.
不需要任何带有自动选择按钮的解决方案。
所以
鼠标点击行
获取其ID或任何值
重定向到我的功能的按钮+ Id。
gridview不可能吗?如果我使用Table会更好吗?
这就是我的尝试:
//To get the id
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.RowIndex.ToString();
string id = DataBinder.Eval(e.Row.DataItem, "Id").ToString();
e.Row.Attributes.Add("rowid", id);
}
}
我的javascript按钮
<a href='<%=ResolveUrl("~/Producter/Delete?id=" ) %>' ID="HyperLink1">Delete</a>
<script type ="text/javascript" language="javascript">
//every time a row is clicked this script will perform the following actions:
$("tr").click(function () {
var clicked = $(this);
//get the row id from the currently cliked row
var rowid = clicked.attr("rowid");
//get the value of href attribute from the link with id 'HyperLink1'
var link = $("#HyperLink1").attr("href");
//remove any previously appended values
var linkTokens = link.split("=");
linkTokens[1] = "";
link = linkTokens.join("=");
//append the current row id to the link
link = link + rowid;
//set the href attribute of your link to the new value
$("#HyperLink1").attr("href", link);
});
</script>
始终得到id = undefined。
答案 0 :(得分:0)
如果您正在使用MVC,我认为您的GridView使用完全错误,因为我可以从后面的代码中看到。 这是一个与MVC不兼容的服务器控件,因为它依赖于PostBack和ViewState。 你可以在“MVC导向的时尚”中轻松完成:
假设您想要从名为“Products”的操作方法中显示产品列表。
现在,在控制器操作中,你称之为View并将其传递给一组Products,如下所示:
public ActionResult Products()
{
List<Products> products = SomeMethodToGetProducts();
return View(products);
}
简单!
您现在要做的就是在生成的视图中填充“编辑”,“删除”等操作。