ユーザーが比較ボタンをクリックしたときに、比較モードが「完全」または「部分」のどちらに設定されているかに応じて、異なるコードが実行され、GridViewにデータが表示されるフォームがあります。
これは、if/elseブロックで設定されます。2つのGridViewがあります。1つは「部分的な」比較の結果を表示し、もう1つは「完全な」比較の結果を表示します。ユーザーが比較モードを変更して比較ボタンをもう一度クリックした場合(つまり、ウィンドウを閉じてプログラムを再実行せずに)を除いて、すべてが正常に機能します。両方のGridViewは、別々のブロック(1つはif、otherはelse)であるため、同時に表示されないようにする必要があります。
gridview1.Visible = false;
たとえば、部分比較オプションが選択されている場合、完全比較のグリッドビューが非表示になるように、またはその逆になるように、を使用して他のグリッドビューを非表示にしてみました。これは機能しません-両方が非表示になるため、何も表示されません!
protected void Run_Comparison(object sender, EventArgs e)
{
DataTable dt = new DataTable();
if (CompareMode.SelectedValue.Equals("Partial"))
{
gridview2.Visible = false; // trying to make full compare gridview invisible
// populate dt and execute partial compare
gridview1.DataSource = dt;
gridview1.DataBind();
}
else if (CompareMode.SelectedValue.Equals("Full"))
{
gridview1.Visible = false; // trying to make partial compare gridview invisible
// populate dt and execute full compare
gridview2.DataSource = dt;
gridview2.DataBind();
}
}
私はポストバックを調べましたが、この問題をどのように処理するか、あるいはこの問題についてこの質問に何を付けるかさえわかりません。何か案は?