Tôi Populating một điều khiển DropDownList như sau -ASP.NET DropDownList vấn đề: SelectedItem không thay đổi
public partial class UserControls_PMS_Send2DeliveryTeam : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
// SA 100928 Get the delivery teams and their respective email addresses
string[] delTeam = ConfigurationManager
.AppSettings["deliveryTeamNames"]
.Split(',');
string[] delTeamEmails = ConfigurationManager
.AppSettings["deliveryTeamEmails"]
.Split('|');
if (delTeam.Length != delTeamEmails.Length)
{
showAlert("You have an error in the configuration of the delivery teams");
return;
}
for(int looper=0; looper<delTeam.Length; looper++)
delTeamDDList
.Items
.Add
(
new ListItem(delTeam[looper], delTeamEmails[looper])
);
}
// Other methods
}
Nhưng bất cứ khi nào người dùng chọn một giá trị từ danh sách thả xuống này, chỉ mục đầu tiên đã được lựa chọn. Để làm rõ hơn, giả sử danh sách có 4 mục, item 1
, item 2
, item 3
và item 4
. Khi người dùng chọn mục thứ 4 từ danh sách, nó chọn item 1
làm giá trị đã chọn.
Lý do đằng sau điều này là gì?
EDIT
Tôi vừa kiểm tra mã HTML được tạo ra cho DropDownList sử dụng firebug, và có vẻ như giá trị "được chọn" không thay đổi ở tất cả thậm chí nếu tôi chọn giá trị khác nhau từ DropDownList.
HTML được tạo như sau -
<select class="select" id="Send2DeliveryTeam_delTeamDDList" name="Send2DeliveryTeam$delTeamDDList">
<option value="value1" selected="selected">Project Initiation Team</option>
<option value="value2">Service Delivery Centre</option>
<option value="value3">TCS</option>
<option value="value4">PIT & SDC</option>
<option value="value5">SDC & TCS</option>
<option value="value6">PIT & TCS</option>
<option value="value7">PIT & SDC & TCS</option>
</select>
Đầu tiên, người dùng chọn một giá trị từ danh sách thả xuống này. Sau đó, anh ấy nhấn một nút, sẽ kích hoạt sự kiện nhấp chuột. Chức năng xử lý sự kiện tương ứng của nút là nơi tôi đang truy cập vào giá trị đã chọn của danh sách thả xuống. Mã này là như sau -
// Button event-handler code
protected void assignDelTeamButton_Click(object sender, EventArgs e)
{
// This is where I am always getting the same value, no matther what I choose
// from the dropdown list, and this value is the one which is selected by default
// when the page loads. I mean, the "SelectedIndex" is always 0.
string selected_value = delTeamDDList.SelectedItem.ToString();
// Other codes
}
các file ascx -
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Send2DeliveryTeam.ascx.cs" Inherits="UserControls_PMS_Send2DeliveryTeam" %>
<div id="Common">
<h3>Welcome <%string user = HttpContext.Current.Session["user_name"].ToString();%><%=user %></h3>
<h1>Request Estimate Screen</h1>
<span>Request Estimate and Assign a Delivery team to a Request</span><br />
<label>Enter an existing project number</label>
<asp:TextBox ID="reqNum" runat="server" CssClass="textBox" /><br />
<label>Select Delivery Team</label>
<asp:DropDownList ID="delTeamDDList" runat="server" CssClass="select" >
</asp:DropDownList>
<label> - Sorted in alpha order</label><br /><br />
<label> </label>
<asp:button ID="assignDelTeamButton" runat="server" Text="Continue"
CssClass="button" onclick="assignDelTeamButton_Click"/><br />
</div>
Second Sửa
Nếu tôi cứng mã ListItems như sau, nó hoạt động một cách hoàn hảo -
<asp:DropDownList ID="delTeamDDList" runat="server" CssClass="select" >
<asp:ListItem Text="Project Initiation Team" Value="[email protected]"></asp:ListItem>
<asp:ListItem Text="Service Delivery Centre" Value="[email protected]"></asp:ListItem>
<asp:ListItem Text="TCS" Value="[email protected]"></asp:ListItem>
<asp:ListItem Text="PIT & SDC" Value="[email protected]"></asp:ListItem>
<asp:ListItem Text="SDC & TCS" Value="[email protected]"></asp:ListItem>
<asp:ListItem Text="PIT & TCS" Value="[email protected]"></asp:ListItem>
<asp:ListItem Text="PIT & SDC & TCS" Value="[email protected]"></asp:ListItem>
</asp:DropDownList>
HTML hiển thị trông như thế nào? whats cặp khóa/giá trị được hiển thị? đang được nói - hãy cẩn thận khi lặp dựa trên một bộ sưu tập và thêm khóa/giá trị dựa trên bộ sưu tập đó VÀ một bộ sưu tập khác. – RPM1984
@ RPM: Vui lòng xem chỉnh sửa. –
@Night Shade - bạn có thể cung cấp HTML thô không? tôi muốn xem HTML thực tế trông như thế nào trước khi bạn vào "mục đã chọn". chúng ta hãy xem nếu html hợp lệ của nó. im ngân hàng trên không. – RPM1984