0

ここに私の ddl select index change イベントがあり、内部で LoadData() 関数を呼び出します。

私の問題は、ドロップダウンリストで新しい値を選択するたびに、グリッドビューがその値に従ってバインドできないことです。ご参考までに:

  1. 私は自動ポストバックをddlに当てはめます。
  2. 合計週時間以下は、ストア プロシージャにパラメータを渡して正しく返すことですが、バインドできません。
protected void ddlWeek_SelectedIndexChanged(object sender, DropDownListEventArgs e)
{ 
    LoadData(); 
}

private void LoadData()
{
    var res = obj.TotalWeekHours(iSsn, strddlWeek);
    Grid2.DataSource = res;
    Grid2.DataBind();
}

前もって感謝します...

4

1 に答える 1

0

そのイベント ハンドラーにブレークポイントを配置し、SelectedValue を確認します。ユーザーが選択した値に更新されていないことがわかると思います。これは、イベント ハンドラの起動方法の問題です。私が見つけた唯一の解決策は、PreRender の新しい値に基づいてデータバインディングを行うことです。だから、私は今何が起こっていると思います: イベントハンドラーが起動し、古い選択された値に対してデータバインディングが発生します-何も起こらなかったように見えます...しかし、イベントを再度発生させる(新しい値を選択する)と、更新されます以前に選択した値。みたいに、1回の選択で「後ろ」になります。PreRender でデータをバインドすることが、これを一貫して修正する唯一の方法です。

試してみて、何度も何度も選択した場合に 1 つの選択が「遅れ」ているかどうかをお知らせください。

于 2013-05-07T20:43:17.967 に答える