2

グリッドビューコントロールがあり、表示されているボタンがfalseに設定されていました。おそらく、グリッドビューで特定の行を選択すると、ボタンの表示がtrueに設定されます。

ただし、問題は、コードビハインドでifステートメントを設定したにもかかわらず、ボタンがfalseに表示されたままになることです。

背後にあるコードは次のとおりです。

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    Label certify = (Label)GridView1.SelectedRow.FindControl("certify");
    Label Status = (Label)GridView1.SelectedRow.FindControl("Status");

    if ((certify.ToString() == "True") & (Status.ToString() == "Not Paid"))
    {
        paymentbtn.Visible = true;
    }

}

プログラムをデバッグするとき、グリッドビューからのデータの取得を管理しました。certifyはTrueに設定され、StatusはNotPaidに設定されました。ただし、コードはまだifステートメントをスキップします。なぜそうなのかわかりません。

4

1 に答える 1

3

値を取得するには、labelのToString()を呼び出す代わりに、のTextプロパティを使用する必要があります。label

変化する

if ((certify.ToString() == "True") & (Status.ToString() == "Not Paid"))
{
    paymentbtn.Visible = true;
}

if ((certify.Text == "True") & (Status.Text  == "Not Paid"))
{
    paymentbtn.Visible = true;
}
于 2012-12-29T16:09:44.550 に答える