求助一个页面实现两个功能!
主页面index.aspx
增加,修改的页面edit.aspx主页面中有2个Button,增加和修改按钮
我在主页面中定义了修改按钮事件:
int id = Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex][0].ToString());
Response.Redirect("fjxx_edit.aspx?id=" + id);把当前页面GridView控件中Id获取并且传递到edit.aspx页面。而edit.aspx页面我则定义了
int id = Convert.ToInt32(Request.QueryString["id"].ToString());
Session["id"] = id;用来接收index.asp修改按钮事件传递过来的Id。
但是杯具了。
index.aspx增加事件的定义:
Response.Redirect("edit.aspx");
直接跳转到edit.aspx页面但是edit.aspx页面出现了错误!未将对象引用设置到对象的实例。
行 21: if (!IsPostBack)
行 22: {
行 23: int id = Convert.ToInt32(Request.QueryString["id"].ToString());行 24: Session["id"] = id;
行 25: List<Houses> list = bll.select_edit(id);
这个错误我理解,是因为edit.aspx这个页面定义的Id找不到,因为我在增加按钮事件中并没有传递Id过来求实现!
主页面index.aspx
增加,修改的页面edit.aspx主页面中有2个Button,增加和修改按钮
我在主页面中定义了修改按钮事件:
int id = Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex][0].ToString());
Response.Redirect("fjxx_edit.aspx?id=" + id);把当前页面GridView控件中Id获取并且传递到edit.aspx页面。而edit.aspx页面我则定义了
int id = Convert.ToInt32(Request.QueryString["id"].ToString());
Session["id"] = id;用来接收index.asp修改按钮事件传递过来的Id。
但是杯具了。
index.aspx增加事件的定义:
Response.Redirect("edit.aspx");
直接跳转到edit.aspx页面但是edit.aspx页面出现了错误!未将对象引用设置到对象的实例。
行 21: if (!IsPostBack)
行 22: {
行 23: int id = Convert.ToInt32(Request.QueryString["id"].ToString());行 24: Session["id"] = id;
行 25: List<Houses> list = bll.select_edit(id);
这个错误我理解,是因为edit.aspx这个页面定义的Id找不到,因为我在增加按钮事件中并没有传递Id过来求实现!
OK了,选我答案吧
这个达不到效果。
因为index.aspx页面的修改按钮事件中获取了一个控件的id。
而edit.aspx页面我在页面加载事件中定义了接受id的方法。
隐藏控件用不到。
demo.aspx?action=add 添加的页面
demo.aspx?action=edit&id=x 编辑的页面
demo.aspx?action=show&id=x 查看单条记录的页面(切换到显示内容的控件panel)其中add和edit共用一个表单 panel控件,当有id回传参数时候赋值表单内的控件值.
以前我也搞一个页面,但是发现没省多少事情,反而增加
你必须判断request。querystring["id"]是不是null,
还有其他的等等。
MSDN: ChangeMode()方法
=======
FormView 最近老打错字,唉。。
简单的啊
if(request.query["id"]!=null)
{
修改
}
else
{
添加
}
第2个页面根据这个判断就可以了
Session["ID"]=1;
Session["IsAdd"]=false;在edit页面根据IsAdd的Key判断是增加还是修改,判断前先判断是否为null