Tôi có một điều khiển hộp danh sách:selectedIndex bị mất trong quá trình đăng lại - ASP.NET
<asp:ListBox runat="server" id="lbox" autoPostBack="true" />
Các mã sau giống:
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;
}
Vấn đề của tôi là khi trang của tôi nhận được một bài đăng lại (khi người dùng thực hiện lựa chọn trong hộp danh sách), lựa chọn luôn "nhảy" vào mục đầu tiên trong hộp danh sách, để biến chỉ mục trong hàm gọi lại của tôi luôn là 0.
Có vẻ như đây có thể là chế độ xem ăn vấn đề? Làm thế nào tôi có thể sửa chữa nó để chỉ số lựa chọn vẫn còn thông qua postback?
Không có ajax xảy ra, đây là .NET 1.0.
Cảm ơn.
EDIT 1 JohnIdol đã giúp tôi tiến gần hơn, Nếu tôi chuyển nguồn dữ liệu từ DataTable gốc sang ArrayList, thì mọi thứ hoạt động bình thường ... điều gì sẽ gây ra điều này?
Chỉnh sửa 2 Hóa ra DataTable của tôi có nhiều giá trị giống nhau, để chỉ mục được xử lý giống như tất cả các mục có cùng giá trị ... nhờ những người đã giúp!
chính xác cùng thứ trên .NET 2.0 hoạt động tốt cho tôi – JohnIdol
vui mừng khi thấy sự cố của bạn được giải quyết – JohnIdol