<%@ Page Language="C#" AutoEventWireup="true" CodeFile="del.aspx.cs" Inherits="del" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<input type="hidden" value="" name="name" id="name" />
<div>
<table>
<tr><td>姓名</td><td>年龄</td><td>操作</td></tr>
<tr><td>小向</td><td>25</td><td><a href="del.aspx?name=小向">删除</a>
<input type="button" value="删除" onclick="document.getElementById('name').value='小向'; document.getElementById('form1').submit();"/></td></tr>
<tr><td>小王</td><td>23</td><td><a href="del.aspx?name=小王">删除</a><input type="button" value="删除" onclick="document.getElementById('name').value='小王'; document.getElementById('form1').submit();"/></td></tr>
<tr><td>小吴</td><td>33</td><td><a href="del.aspx?name=小吴">删除</a><input type="button" value="删除" onclick="document.getElementById('name').value='小吴'; document.getElementById('form1').submit();"/></td></tr>
</table>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
/*请求响应模型的例子
* 按钮实现表格行删除效果,使用超链接进行删除,代码见备注
* 这就是asp.net中数据绑定控件中行按钮和行超链接实现方式的不同,listview中button, hyperLink两种行删除方式
* 按钮方工是将行的id通过表单提交到服务器,行超链接的方式是通过超链接的url通过get方式提交给处理页面的,超链接的方式由于没有提交所有的表单信息
* 因此很多服务端控件的高级用法用不了
*
* 用aspx重写,超链接的因为没有向服务器提交ViewState等隐藏字段,所以处理时ispostback是flase,而按钮的则是接交的表单,所以ispostback=true
* 可以在超链接的href中写表单提交的javascript,这样就webform中linkbutton的原理
*
* 客户端,服务端由于在两台计算机中,所以无法做到两边变量的互相读取或者两边函数的互相调用,所以如果想看起来好像做到,那么必须通过提交的方式来将客户端变量值做为一个表单字段提交到服务器,或者服务端将服务端变量打印到客户端代码中
*
*/
public partial class del : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//判断是否为表单提交
if (IsPostBack)
{
string name = Request["name"];
Response.Write(name + "被删除了");
}
}
}
<%@ WebHandler Language="C#" Class="del" %>
using System;
using System.Web;
public class del : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/html";
//context.Response.Write("Hello World");
string name = context.Request["name"];
context.Response.Write(name+"要被删除!");
}
public bool IsReusable {
get {
return false;
}
}
}