2011-08-05 44 views
10

Tôi có cảm giác mình thiếu một cái gì đó thực sự rõ ràng, tôi không thể nắm bắt được giá trị được chọn của DropDownList của tôi; giá trị renaubs mục đầu tiên trong danh sách. Tôi đã đặt thuộc tính DropListList autopostback thành đúng. Tôi có một SelectedIndexChangedEvent được dán dưới đây. Điều này KHÔNG ở trên trang chính.Giá trị được chọn ASP.Net DropDownList

protected void ddlRestCity_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (IsPostBack) 
    { 
     r_city = ddlRestCity.SelectedValue.ToString(); 
    } 
} 

Đây là sự kiểm soát DropDownList:

<asp:DropDownList ID="ddlRestCity" runat="server" 
     Width="100px" AutoPostBack="True" 
     onselectedindexchanged="ddlRestCity_SelectedIndexChanged"> 
</asp:DropDownList> 

Thanx trước sự giúp đỡ của bạn!

+2

Cuộc gọi 'DataBind()' của bạn ở đâu? Bạn đang kiểm tra '! IsPostBack' trước cuộc gọi? –

+0

tất cả các bạn đều viết jock, mọi người đều biết điều cơ bản –

+0

cảm ơn -1 cho tất cả chúng ta. Tôi sẽ xóa câu trả lời của mình. bạn ít nhất có thể giải thích lý do tại sao –

Trả lời

12

Tôi tắt giả đoán là bạn có thể đang điền lại danh sách trên một bài đăng và điều đó làm cho chỉ mục đã chọn được đặt lại.

8

Cuộc gọi DataBind() của bạn ở đâu? Bạn đang kiểm tra !IsPostBack trước cuộc gọi? Ví dụ:

protected void Page_Load(object sender, EventArgs e) { 
    if (!IsPostBack) { 
     ddlRestCity.DataSource = ...; 
     ddlRestCity.DataBind(); 
    } 
} 

Giải thích: Nếu bạn không kiểm tra !IsPostBack trước DataBind(), danh sách sẽ tái cư trướcSelectedIndexChanged là bắn (vì Page.Load cháy trước sự kiện trẻ em như SelectedIndexChanged) . Khi SelectedIndexChanged sau đó được kích hoạt, "mục đã chọn" hiện là mục đầu tiên trong danh sách mới được điền.

+0

Cảm ơn bạn, bạn đã giải quyết được câu hỏi của tôi. –

+0

Cảm ơn! Nó giải quyết được vấn đề của tôi – Nayef

0

Giá trị là gì?

Nếu đó là một textbox, thì bạn cần phải làm điều gì đó như r_city.text = ...

Ngoài ra - bạn có thể xem xét loại bỏ kiểm tra postback của bạn. Thông thường, điều đó hữu ích nhất trong sự kiện page.onload và thông thường, bạn đang kiểm tra if NOT ispostback ...

Các vấn đề liên quan