GridView编辑/删除未正确刷新。 ASP.Net

时间:2013-02-08 22:50:03

标签: asp.net

基本上我正在做的是允许用户输入人名,按下按钮并编辑/删除选择的字段。

我可以使用默认的gridview属性编辑/删除。但是当我按下编辑时,它会重新加载回默认的select命令。我需要它做的是使用文本框的文本。

这是我搜索用户的方式

 protected void GetUser_Click(object sender, EventArgs e)
    {
        query = Session["username"].ToString();  
        string sql = "SELECT [Username], [Job Description] AS Job_Description, [Hours Worked] AS Hours_Worked, [Date], [ID] FROM [TimeData] WHERE ([Username] LIKE '" + query+ "')";
        Response.Write("done");
        SqlDataSource1.SelectCommand = sql;
    }

所以在页面加载中我需要它“记住”我在按下编辑之前输入的内容。

在ASPX文件中的

我将select命令留空,而是在Page_load方法中设置它

 protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.Visible = true;
        Session["Username"] = UserBox.Text;
        //Session["Username"] = "rhys";
        query = Session["username"].ToString();
        string sql = "SELECT [Username], [Job Description] AS Job_Description, [Hours Worked] AS Hours_Worked, [Date], [ID] FROM [TimeData]";
        //Response.Write("done");
        SqlDataSource1.SelectCommand = sql;   
    }

Atm我可以让它再次显示,但我再次查询完整的表格,而不是用户名

我正在寻找一种方法来回发变量或其他东西,但似乎没有任何效果。

任何帮助都将不胜感激。

编辑: 这些评论有助于我按下按钮

  protected void GetUser_Click(object sender, EventArgs e)
 {
 query = Session["username"].ToString();
 string sql = "SELECT [Username], [Job Description] AS Job_Description, [Hours Worked] AS Hours_Worked, [Date], [ID] FROM   [TimeData] WHERE ([Username] LIKE '" + query + "')"; 
Response.Write("done");
 SqlDataSource1.SelectCommand = sql; 

} 

“不再返回任何更改,那是因为相同的代码位于块之后的其他部分!回发后?

1 个答案:

答案 0 :(得分:0)

应该是:

protected void Page_Load(object sender, EventArgs e)
{
     if(!Page.IsPostBack)
     {
        GridView1.Visible = true;
        Session["Username"] = UserBox.Text;
        query = Session["username"].ToString();
        string sql = "SELECT [Username], [Job Description] AS Job_Description, [Hours Worked] AS Hours_Worked, [Date], [ID] FROM [TimeData]";
        SqlDataSource1.SelectCommand = sql; 
     } 
}

现在,您的页面加载将覆盖您的事件处理程序已完成的操作。

此外,用户parameteriezd queries可以防止SQL注入