本质上,我正在做的是允许用户输入人名,按下按钮并编辑/删除选择的字段。
我可以使用默认的 gridview 属性很好地编辑/删除。但是当我按下编辑时,它会重新加载回默认的选择命令。我需要它做的是使用文本框的文本。
这就是我搜索用户的方式
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 文件中,我将 selectcommand 留空,而是在 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;
}
" 不再返回任何更改,是不是因为 !postback 之后块的 else 部分中存在相同的代码?