基本的に私がやっていることは、ユーザーが人の名前を入力し、ボタンを押して、選択したフィールドを編集/削除できるようにすることです。
デフォルトの 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 部分にあるためでしょうか?