我的页面包含左右两FRAME:
左边FRAME文件left.aspx,显示用户功能树,右边FRAME显示功能所对应的页面。
问题:
右侧页面(usermanage.aspx)对数据进行删除操作后,dbgrid显示正常,但此时通过左侧功能树再次进入此页面时,显示删除前的数据,重新登陆后,显示删除后的数据。
该如何解决?

解决方案 »

  1.   

    在你提交操作以后。
    usermanage.aspx页面的datagrid之类的数据控件重新绑定一道记录集即可
      

  2.   

    例如:
    void bindmydatacontrol()
    {
    .......//读取记录ds
    datagrid.datasource=ds.tables[0].defaultview;
    datagrid.databind();
    }void page_load(....)
    {
    if (!ispostback)
    {
     bindmydatacontrol();
    }
    }void button_click(..)
    {
      .....//你的操作
      bindmydatacontrol();
    }
      

  3.   

    谢谢,我已经重新绑定了,删除操作也已经执行,问题是:通过left.aspx的链接再次进入usermanage.aspx 时,显示的是删除以前的纪录。
      

  4.   

    代码如下:using System;
    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)
    {

    }

    }
    }
      

  5.   

    问题得到初步解决:
    IE菜单 工具-〉intnet选项-〉常规-〉设置
    将“每次启动Intnet ......“改为“每次访问....”即可。
    但感觉不是最终方法。