c# - 数据网格刷新不起作用

标签 c# asp.net

我有一个数据网格来显示来自 SQL 表的一些信息,然后是一个简单的文本框和按钮以允许用户将记录添加到数据库中。问题是,当用户单击“添加”时,数据网格应该更新,但它没有,有什么想法吗?问题代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
        username.Text = Session["username"].ToString();
        datetime.Text = DateTime.Now.ToString();

        BindData();
    }

protected void BindData()
    {
        string SQLQuery = "SELECT * From Filters";

        OleDbConnection MyConn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);

        DataSet resultsDataSet = new DataSet();
        MyConn.Open();

        OleDbDataAdapter DataAdapter = new OleDbDataAdapter(SQLQuery, MyConn);
        DataAdapter.Fill(resultsDataSet);
        DGFilters.DataSource = resultsDataSet;
        DGFilters.DataBind();

        if (resultsDataSet.Tables[0].Rows.Count == 0)
        {
            no_records.Visible = true;
            DGFilters.Visible = false;
        }
        else
        {
            DGFilters.Visible = true;
            no_records.Visible = false;
        }

        MyConn.Close();
    }

    protected void AddFilter_Click(object sender, EventArgs e)
    {
        OleDbConnection MyConn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);

        MyConn.Open();

        string SQLInsert = "INSERT INTO Filters (FilterString) VALUES ( '" + FilterToAdd.Text + "')";

        OleDbCommand MyCmd = new OleDbCommand(SQLInsert, MyConn);

        MyCmd.ExecuteNonQuery();

        MyConn.Close();

        DataBind();

    }

有什么想法吗?

最佳答案

AddFilter_Click 方法的底部,您需要调用自己的 BindData() 以便可以使用新记录刷新网格。现在您正在调用 DataBind(),这是基类 Control 上的一个方法,它被应用于您的整个 Web 表单。我猜这并没有起到什么作用。

此外,在您的 Page_Load 方法中,您可以更改此设置:

BindData();

if (!Page.IsPostBack)
     BindData();

这样当用户点击“添加”按钮时您就不会绑定(bind)两次网格。

关于c# - 数据网格刷新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449858/

相关文章:

asp.net - 必须在 asp.net 中单击按钮两次(在自动回发文本框之后)

C#动态创建控件问题

c# - 从其他域获取用户AD组

c# - PostSharp 方面解析类型

c# - 网站 : MSB3270: There was a mismatch between the processor architecture

asp.net - 在我的 VS 2013 环境中获取 ASP.NET 4.5(安装或升级)

c# - 数据网格 asp.net 中的超链接列

c# - 如何 stub HttpControllerContext

c# - Windows Phone silverlight 8.1 Http NotificationChannel ChannelUri 更新未被击中

c# - FileStream 和 System.IO.File 方法之间的文件访问差异