2016-11-22 2 views
0

ページには、テキストボックス、ボタン、グリッドビュー、ラベルのみがあります。asp.netの最初の試行でラベルテキストが更新されません。どうして?

テキストボックスにユーザー名を入力してボタンをクリックすると、dbで検索され、gridviewが満たされ、ラベルテキストが「xx結果が見つかりました」と更新されるので、xxはdbで見つかった結果の数です。

サンプルコードは非常に短く、簡単である:例えば

string userName = TextBox2.Text; 
SqlDataSource1.SelectCommand = "Select * From SampleTable Where name = '"+userName+"'"; 
ResultLable.Text = GridView1.Rows.Count + " Result Found"; 
GridView1.Visible = true; 
ResultLable.Visible = true; 

。 dbにusernameというJohnが存在しますが、Maryは存在しません。私がJohnを検索すると、数は1(正解)です。その後、Maryを検索してもう一度ボタンをクリックしますが、数字は1(間違っています)ですが、再度ボタンをクリックすると0になります。同じように。

問題はクリックボタンが最初のクリックで更新されていないことです.2回目のクリックでのみ機能します。

どうしてですか?セット後

答えて

1

でSelectCommandあなたは

SqlDataSource1.DataBind(); 
GridView1.DataBind(); 
+0

ありがとうございました – abidinberkay

1

を呼び出す必要がある問題は、あなたがGridView1.Rows.Countに見ているということです、あなたがボタンをクリックすると、グリッドはRows.Countは、グリッドの前の値からになりますので、再バインドされていません。

ResultLable.Text = GridView1.Rows.Count + " Result Found"; 

あなたはButton_ClickGridView1.Rows.Count()を取る前に、あなたのグリッドを再バインドする必要があります。

+0

回答ありがとうございます。 – abidinberkay

関連する問題