什么是最好的方法(选择行,在按钮点击时删除它)

时间:2013-05-11 09:57:55

标签: javascript c# gridview model-view-controller html-table

我无法找到解决问题的方法。 这是我正在研究的MVC项目。

在GridView中我该怎么做:Click on row and then click on button to delete this selected or clicked row.

不需要任何带有自动选择按钮的解决方案。

所以

  1. 鼠标点击行

  2. 获取其ID或任何值

  3. 重定向到我的功能的按钮+ Id。

  4. 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。

1 个答案:

答案 0 :(得分:0)

如果您正在使用MVC,我认为您的GridView使用完全错误,因为我可以从后面的代码中看到。 这是一个与MVC不兼容的服务器控件,因为它依赖于PostBack和ViewState。 你可以在“MVC导向的时尚”中轻松完成:

假设您想要从名为“Products”的操作方法中显示产品列表。

  1. 右键单击该控制器操作并添加新视图。
  2. 弹出模态对话框。
  3. 查看“产品”的名称。
  4. 从列表中选择它将强烈绑定的类型,因此 '产品'类。
  5. 选择视图类型为“列表”。
  6. 选择布局页面(与ASP.NET中的MasterPage类似)。
  7. 就是这样。
  8. 现在,在控制器操作中,你称之为View并将其传递给一组Products,如下所示:

    public ActionResult Products()
    {
      List<Products> products = SomeMethodToGetProducts();
    
      return View(products);
    }
    

    简单!

    您现在要做的就是在生成的视图中填充“编辑”,“删除”等操作。