关于在aspx.cs的page_load()初始化对象变量的问题? page_load里面判断这个参数是否为空,如果为空即是新增,如果不为空即为修改。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Request.QueryString["..."] != null) { } } } 为什么要这么做呢?你的页面放2个按钮就好了一个新增,一个更新然后在相应的Button事件里直接处理就好了。如果非要用这个标志,那页面也应该有一个标志位会提交取这个标志位提交的值判断就好比如页面有个hidden,新增时为0,更新时为1<asp:Hidden id="hidFlg" runat="server" />那在Page_Load里:if(hidFlg.Text == "1") 更新else 新增 楼上说的我都曾试过,比如调用页时同时传递须修改记录的ID值,编辑而的page_load()中用Request.QueryString["..."] 方式取值,并实例化对象,比如说EditCustomerEntity,并将信息显示在界面上,肯定是可行的.但问题是我保存时又须要重新初始化一个新的CustomerEntity,并将界面的用户修改后的值赋给它,并进行数据操作,而关键在于此页面上可能并不包含全部CustomerEntity的字段,新的CustomerEntity的某个字段(如:RecordDate,记录首次创建时间)需要继需用原来的EditCustomerEntity的字段值.由于保存时点击button时EditCustomerEntity为null了,哪我在保存还必须重新再执行一次Request.QueryString["..."] ,重新再初始化一次EditCustomerEntity.再将值赋给CustomerEntity.也就是说多增加了一次数据库的读操作.我想如果能缓存的话,能少一次数据库交互最好.不知大家还有什么好的建议. protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Request.QueryString["..."] != null) { } } } WebForm是不保存状态的,这点和WinForm差别很大。要实现你说的功能,可以用ViewState保存对象。 1.可以把修改和新增页面分开做,这样你点前一页新增或修改按钮则链接到不同页面,这样不需要判断。2.如果按你说的修改和新增是同一个页面,就必须根据前一页传过来的参数做判断:在前一页的修改和新增事件里传参数:session["参数名"] = "add"; //新增事件session["参数名"] = "edit" //修改事件protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (session["参数名"] == "add") { ………… } else if (session["参数名"] == "edit") { ………… } } } 你可以把要保存的变量存到ViewState中: private string sKey { set{ViewState["Key"]=value;} get{return ViewState["Key"]==null?"":ViewState["Key"].ToString();} } 在page_Load里面接收参数的时候,if (!Page.IsPostBack){ 要加在这里面!!!} 按时间段查询数据库,获取不到数据,是什么原因? 求高手支招,怎么有效的提高.net网站运行效率? 问个正则的问题啊,组的问题 在三层模式中的 泛型应用遇到的疑惑 ASP.NET新手求救!! 分页出错(问题解决就结贴) 在ASP.NET中如何实现对扫描仪的控制? 急啊!! 请教当要删除一条记录时出现对话框的问题 关于MS的PetShop示例的疑问,高手请进 .net 如何清除外站登陆 学习.net中,希望好心朋友能提供简单实例 依旧困扰我的问题 ASP.NET调用PHP 中Webservice的问题
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Request.QueryString["..."] != null)
{
}
}
}
你的页面放2个按钮就好了
一个新增,一个更新
然后在相应的Button事件里直接处理就好了。如果非要用这个标志,那页面也应该有一个标志位会提交
取这个标志位提交的值判断就好比如页面有个hidden,新增时为0,更新时为1
<asp:Hidden id="hidFlg" runat="server" />那在Page_Load里:
if(hidFlg.Text == "1")
更新
else
新增
{
if (!Page.IsPostBack)
{
if (Request.QueryString["..."] != null)
{
}
}
}
要实现你说的功能,可以用ViewState保存对象。
2.如果按你说的修改和新增是同一个页面,就必须根据前一页传过来的参数做判断:
在前一页的修改和新增事件里传参数:
session["参数名"] = "add"; //新增事件
session["参数名"] = "edit" //修改事件
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (session["参数名"] == "add")
{
…………
}
else if (session["参数名"] == "edit")
{
…………
}
}
}
private string sKey
{
set{ViewState["Key"]=value;}
get{return ViewState["Key"]==null?"":ViewState["Key"].ToString();}
}
if (!Page.IsPostBack)
{
要加在这里面!!!
}