我有兩個dropdowlists ddprojecttype和ddprojectname。在選擇項目類型時,我使用jQuery和AJAX將項目名填入ddprojectname。它只顯示正確。下拉選定的值沒有被選中,它總是顯示第一個值在選擇
但是,每當我嘗試在下拉列表中進行選擇時,它總是選擇第一項。而且它的行爲是特殊的:當我在瀏覽器中查看aspx頁面時,它將所有項目名稱顯示在下拉列表中。而在查看源代碼的情況下,它根本沒有顯示下拉選項。
我會後的頁面代碼,以及用於將HTML和jQery腳本他們:
<asp:DropDownList ID="ddProjectTypeID" runat="server" >
</asp:DropDownList>
<asp:DropDownList ID="ddProjectName" runat="server" >
</asp:DropDownList>
jQuery的爲它成功地加載項目名稱的腳本是:
$('[id*="ddProjectTypeID"]').change(function() {
if ($(this).find(":selected").text() != "--Select--") {
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'Services/Service.asmx/GetProjectNames',
data: '{"p_type_id":"' + $(this).find(":selected").val() + '"}',
dataType: "json",
success: function(data, textStatus) {
if (textStatus == "success") {
var myObject = data.d;
$('[id*="ddProjectName"] >option').remove();
$('[id*="ddProjectName"]').append($('<option></option>').val("--Select--").html("--Select--"));
for (var i = 0; i <= myObject.length - 1; i++) {
$('[id*="ddProjectName"]').append($('<option></option>').val(myObject[i].project_id)
.html(myObject[i].project_name));
}
}
},
error: function(data, textStatus) {
alert('An error has occured retrieving data!');
}
});
}
});
它將名稱成功加載到ddprojectnames下拉列表中:
奇怪的是,每當我執行此代碼時:
protected void btnSubmit_Click(object sender, EventArgs e)
{
ScheduleDetails scdetails = new ScheduleDetails();
scdetails.ProjectTypeID = ddProjectTypeID.SelectedItem.Value;
scdetails.ProjectID = ddProjectName.SelectedItem.Value;
}
它只是變得scdetails.ProjectTypeID = 1,但 scdetails.ProjectID = 「 - 選擇 - 」
我沒有得到的原因所在。儘管我已經從projecttypeID的級聯下拉列表中加載了項目名稱,但是,無論我選擇ddprojectname的任何值,它都會得到「--select--」...
爲什麼會發生這種情況?
只是一個預感 - 註釋填充'---- select ---'選項的行。現在選定的價值是多少? – 2011-04-11 11:40:46