私はリストボックスコントロールを持っています:
<asp:ListBox runat="server" id="lbox" autoPostBack="true" />
コード ビハインドは次のようになります。
private void Page_Load(object sender, System.EventArgs e)
{
lbox.SelectedIndexChanged+=new EventHandler(lbox_SelectedIndexChanged);
if(!Page.IsPostBack)
{
LoadData();
}
}
private LoadData()
{
lbox.DataSource = foo();
lbox.DataBind();
}
protected void lboxScorecard_SelectedIndexChanged(object sender, EventArgs e)
{
int index = (sender as ListBox).selectedIndex;
}
私の問題は、私のページがポストバックを受信したとき (ユーザーがリストボックスで選択を行ったとき)、選択が常にリストボックスの最初の項目に「ジャンプ」するため、コールバック関数のインデックス変数が常に 0 になることです。
これはビューステートの問題である可能性がありますか?選択インデックスがポストバックを通じて残るようにするにはどうすれば修正できますか?
進行中の ajax はありません。これは .NET 1.0 です。
ありがとう。
編集 1 JohnIdol は一歩近づきました。データソースを元の DataTable から ArrayList に切り替えると、すべてが正常に機能します...何が原因でしょうか?
編集 2私の DataTable には同じ値が複数あることが判明したため、インデックスは同じ値を持つすべてのアイテムと同じように扱われました...助けてくれた人に感謝します!