none
点击这个Button键后如何自动再刷新一次界面 RRS feed

  • 问题

  •     我用ASP.NET做了一个GridView界面,其中有个"生成押金"的Button_LeaseAssureMoney键,只要点这个键,就会执行生成押金的SQL代码。可是我发现,点击了"生成押金"的Button键后,SQL数据库确实生成了押金,而GridView界面并没有改变。也就是GridView没有即时刷新数据,我要怎么样给"生成押金"的Button键再添加一个刷新界面,把SQL中的新数据显示到GridView上呢?
        以下是我的后台代码,有点长但很简单!
    ----------------------代码1------------------------

    protected void Button_LeaseAssureMoney_Click(object sender, EventArgs e)
        {
            string strconn = ConfigurationManager.ConnectionStrings["长铁物业公司资产数据库ConnectionString"].ToString();
            SqlConnection cn = new SqlConnection(strconn);
            string orderstate = "update ReceivableTable set LeaseAssureMoneyR03=(case  when LeaseAssureMoneyR02 is not null then         (case             when LeaseAssureMoneyR03 is not null then LeaseAssureMoneyR03            else LeaseAssureMoneyR02            end)    else null    end) where ReceivableState=1   ";
            if (DropDownList_Year.SelectedItem.Value.ToString() != "未选择")
            {
                orderstate = orderstate + " and  ReceivableID =" + DropDownList_Year.SelectedItem.Value.ToString();
                if (DropDownList_BelongToCompanyR.SelectedItem.Value.ToString() != "未选择")
                    orderstate = orderstate + " and BelongToCompanyR= '" + DropDownList_BelongToCompanyR.SelectedItem.Value.ToString() + "'";
            }
            else
            {
                orderstate = orderstate + " and  ReceivableID =" + DateTime.Now.Year.ToString();
                if (DropDownList_BelongToCompanyR.SelectedItem.Value.ToString() != "未选择")
                    orderstate = orderstate + " and BelongToCompanyR= '" + DropDownList_BelongToCompanyR.SelectedItem.Value.ToString() + "'";
            }
            SqlCommand comm = new SqlCommand(orderstate, cn);
            if (cn.State == System.Data.ConnectionState.Closed)
                cn.Open();
            comm.ExecuteNonQuery();
            cn.Close();
        }


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!

    2013年4月17日 7:47

答案

全部回复

  • 在更新之后请重新取出数据,绑定即可。

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats

    2013年4月17日 7:50
  •     该怎么写呢?我只写过postback,这种更新界面还真没写过!

    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!

    2013年4月17日 8:06
  • protected void Button_LeaseAssureMoney_Click(object sender, EventArgs e)
        {
            ………………
            comm.ExecuteNonQuery();
            cn.Close();
    
           using(SqlDataAdapter adapter = new SqlDataAdapter("select * from xxx","Your connection String"))
           {
               DataTable dt = new DataTable();
               adapter.Fill(dt);
               GridView1.DataSource = dt;
               GridView1.DataBind();
           }
        }

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats

    2013年4月17日 8:08
  •     谢谢您的及时回复,可是还是不行。因为我的界面一打开就有了Gridview界面,这个GridView对应了一个SQLdataSource,这个SQLdataSource除了生成押金的功能外还有其他不少的功能。您提供的代码是生成了一个新的DataSource:dt,而我的GridView早已绑定了一个SQLdataSource了,按照您的方法,就会出现GridView有两个数据源冲突的错误。

        我仅仅是想再点击了生成押金的Button后,界面重新读取一次SQL数据库并刷新GridView,有其他方法么?


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!

    2013年4月17日 8:45
  • GridView1.DataBind();重新刷新一次。

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    2013年4月17日 8:47
  •     原来GridView1.DataBind();还自带了刷新的效果...呵呵,我真的傻到呆了!

        非常感谢!


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!

    2013年4月17日 8:56