У меня возникли проблемы с получением выбранного значения в asp: DropDownList. Я использую AJAX и хочу динамически обновлять страницу Default.aspx. Это работает, однако, ценность, извлекаемая из DropDownList, не передается правильно функции ASP.DropDownList SelectedValue не работает
Функция ASP возвращает что-то, а не строку. Правильно ли я делаю это?
Default.aspx:
<script type="text/javascript">
// Calls an ASP function, gets user surname
function GetData(){
var response = UserForm.GetData();
alert (response); // returns [object object]
document.getElementById("surnameLabel").innerHTM = response;
}
</script>
<asp:SqlDataSource
id="Users"
runat="server"
connectionstring="<%$ ConnectionStrings:ConnectionString %>"
selectcommand="select username, userid from users"
>
</asp:SqlDataSource>
<asp:DropDownList
id="UserList"
name="UserList"
runat="server"
DataSourceID="Users"
DataTextField="username"
DataValueField="userid"
>
</asp:DropDownList>
<input type="button" onclick="GetData();" value="Get Surname" />
<asp:Label name="surnameLabel" id="surnameLabel" Text="No user selected"></asp:Label>
Default.aspx.cs:
public partial class UserForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(AwardsForm));
if (!this.IsPostBack) { }
}
// This function is called from the javascript function and looks up the users surname
[Ajax.AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
public string GetData()
{
string userid = UserList.SelectedValue.ToString(); // this value keeps on equalling null
// Do some SQL using this ID to look up user surname
return Surname;
}
}
Правильно, вы знаете, есть ли более новый метод, который люди используют для такого рода вещей? Я попытался передать переменную Javascript через функцию ASP, но по какой-то причине она не работает. Все, что мне нужно сделать, это искать SQL динамически, пока значение возвращается к aspx без полного обновления. –
Во-первых, я предполагаю, что вы обновили метод GetData, чтобы принять значение в качестве параметра объекта? Что касается более поздних методов, я обновил ответ с рекомендацией. –
Спасибо за загрузку помощника, я проверю его, как только смогу, и дам вам знать, как я пойду. –