我的页面包含左右两FRAME:
左边FRAME文件left.aspx,显示用户功能树,右边FRAME显示功能所对应的页面。
问题:
右侧页面(usermanage.aspx)对数据进行删除操作后,dbgrid显示正常,但此时通过左侧功能树再次进入此页面时,显示删除前的数据,重新登陆后,显示删除后的数据。
该如何解决?
左边FRAME文件left.aspx,显示用户功能树,右边FRAME显示功能所对应的页面。
问题:
右侧页面(usermanage.aspx)对数据进行删除操作后,dbgrid显示正常,但此时通过左侧功能树再次进入此页面时,显示删除前的数据,重新登陆后,显示删除后的数据。
该如何解决?
usermanage.aspx页面的datagrid之类的数据控件重新绑定一道记录集即可
void bindmydatacontrol()
{
.......//读取记录ds
datagrid.datasource=ds.tables[0].defaultview;
datagrid.databind();
}void page_load(....)
{
if (!ispostback)
{
bindmydatacontrol();
}
}void button_click(..)
{
.....//你的操作
bindmydatacontrol();
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using dhwang.Common;
using dhwang.Common.Data;
using dhwang.BusinessFacade;
using dhwang.Tools;
using dhwang.SystemFrameWork;
using dhwang.dhwangWeb;namespace dhwang.Web.sys
{
/// <summary>
/// userlist 的摘要说明。
/// </summary>
public class userlist :PageBase
{
protected System.Web.UI.WebControls.TextBox TextBoxRegname; T_UserData t_UserData = new T_UserData();
protected System.Web.UI.WebControls.CheckBox CheckBoxPG;
protected System.Web.UI.WebControls.CheckBox CheckBoxSelectAll;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label RSCount;
protected System.Web.UI.WebControls.DataGrid DataGridUser;
protected System.Web.UI.WebControls.Button ButtonRegist;
protected System.Web.UI.WebControls.Button ButtonDelete;
protected System.Web.UI.WebControls.Button ButtonQuery;
T_UserSystem t_UserSystem = new T_UserSystem();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
this.ButtonDelete.Attributes.Add("OnClick","javascript:return confirm('您确定要注销选定的用户信息吗?');");
//加载dbgrid数据
//第一次进入该页,生成过滤条件和排序条件属性
//过滤条件的哈希表
Hashtable tableFilter = new Hashtable();
RowFilter = tableFilter;
//排序条件的哈希表
Hashtable tableSortBy = new Hashtable();
SortField = tableSortBy; //利用dataGrid作为键值,对于页面多个dataGrid可以确保唯一性
RowFilter.Add("DataGridUser","");
SortField.Add("DataGridUser","regname ASC");
FillDataView(RowFilter["DataGridUser"].ToString(),SortField["DataGridUser"].ToString()); }
} private void FillDataView(string rowFilter,string sortBy)
{
t_UserData = t_UserSystem.GetT_User();
if(t_UserData==null) return;
if (t_UserData.Count>0)
{
DataView t_UserDataView = new DataView(t_UserData.Table);
t_UserDataView.RowFilter = rowFilter;
t_UserDataView.Sort = sortBy;
this.DataGridUser.DataSource = t_UserDataView;
this.DataGridUser.DataBind();
this.RSCount.Text=t_UserDataView.Count.ToString(); }
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.CheckBoxPG.CheckedChanged += new System.EventHandler(this.CheckBoxPG_CheckedChanged);
this.CheckBoxSelectAll.CheckedChanged += new System.EventHandler(this.CheckBoxSelectAll_CheckedChanged);
this.ButtonQuery.Click += new System.EventHandler(this.ButtonQuery_Click);
this.DataGridUser.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGridUser_ItemCommand);
this.DataGridUser.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGridUser_PageIndexChanged);
this.DataGridUser.SelectedIndexChanged += new System.EventHandler(this.DataGridUser_SelectedIndexChanged);
this.ButtonRegist.Click += new System.EventHandler(this.ButtonRegist_Click);
this.ButtonDelete.Click += new System.EventHandler(this.ButtonDelete_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataGridUser_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
if (e.SortExpression.ToUpper()==SortField["DataGridUser"].ToString().ToUpper())
{
if (e.SortExpression.ToUpper().IndexOf("ASC")!=-1)
{
SortField["DataGridUser"] = e.SortExpression.ToUpper().Replace("ASC","DESC");
}
else
{
SortField["DataGridUser"] = e.SortExpression.ToUpper().Replace("DESC","ASC");
}
}
else
{
SortField["DataGridUser"] = e.SortExpression.ToUpper();
}
this.FillDataView(RowFilter["DataGridUser"].ToString(),SortField["DataGridUser"].ToString()); } private void CheckBoxPG_CheckedChanged(object sender, System.EventArgs e)
{
this.DataGridUser.AllowPaging = this.CheckBoxPG.Checked;
this.DataGridUser.PageSize = this.pageSize;
this.FillDataView(RowFilter["DataGridUser"].ToString(),SortField["DataGridUser"].ToString()); } private void CheckBoxSelectAll_CheckedChanged(object sender, System.EventArgs e)
{
for (int i = 0; i < this.DataGridUser.Items.Count; i++)
{
((CheckBox)DataGridUser.Items[i].FindControl("checkBoxSelect")).Checked = this.CheckBoxSelectAll.Checked;
}
} private void ButtonRegist_Click(object sender, System.EventArgs e)
{
Response.Redirect("../sys/regist.aspx",false);
} private void ButtonDelete_Click(object sender, System.EventArgs e)
{
ArrayList userIds = new ArrayList();
for (int i = 0; i < this.DataGridUser.Items.Count; i++)
{
if (((CheckBox)DataGridUser.Items[i].FindControl("checkBoxSelect")).Checked)
{
userIds.Add(DataGridUser.Items[i].Cells[0].Text);
}
}
if(userIds.Count ==0)
{
Page.RegisterStartupScript("check", "<script>alert('您没有选中用户!!!');</script>");
} try
{
// Delete selected record from database
this.t_UserSystem.DeleteT_User(userIds);
String logtext = "注销了"+userIds.Count.ToString()+"个用户!!";
this.CreateLog(logtext);
Page.RegisterStartupScript("check", "<script>alert('恭喜您成功注销所选用户!!!');</script>");
this.FillDataView(RowFilter["DataGridUser"].ToString(),SortField["DataGridUser"].ToString());
}
catch(Exception ex)
{
Page.RegisterStartupScript("check", "<script>alert('注销用户失败!!!');</script>");
}
} private void DataGridUser_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGridUser.CurrentPageIndex = e.NewPageIndex;
this.FillDataView(RowFilter["DataGridUser"].ToString(),SortField["DataGridUser"].ToString());
} private void ButtonQuery_Click(object sender, System.EventArgs e)
{
String query="regname like '%"+this.TextBoxRegname.Text.Trim()+"%'";
this.FillDataView(query,SortField["DataGridUser"].ToString());
} private void DataGridUser_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.CommandName=="detailinfor")
{
Response.Redirect("../sys/userdetail.aspx?userid="+e.Item.Cells[0].Text.Trim());
}
if (e.CommandName=="roledef")
{
Response.Redirect("../sys/userrole.aspx?userid="+e.Item.Cells[0].Text.Trim());
}
} private void DataGridUser_SelectedIndexChanged(object sender, System.EventArgs e)
{
}
}
}
IE菜单 工具-〉intnet选项-〉常规-〉设置
将“每次启动Intnet ......“改为“每次访问....”即可。
但感觉不是最终方法。