我有两个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