クライアント側にテキストボックスとドロップダウンリストがあります。これらのコントロールの値を、javascriptを使用して(コードビハインドで)webmethodに渡す必要があります。テキストボックスの値を渡すことはできますが、ドロップダウンリストを渡すことはできません。
<p><asp:DropDownList id="ddlList" runat="server"></asp:DropDownList></p>
<p><asp:TextBox ID="txtSearch" runat="server" OnTextChanged="txtSearch_TextChanged" OnKeyPress="onKeyFunction();" AutoPostBack="True"></asp:TextBox>
<asp:GridView ID="grdLista" runat="server"></asp:GridView>
<script type="text/javascript">
function onKeyFunction() {
var search = document.getElementById('<%=txtSearch.ClientID %>').value;
//var ddl = i need to pass the dropdownlist values here..
PageMethods.callJS(search, /*ddl */, onSucess, onError);
function onSucess(result) {
alert(result);
}
function onError(result) {
alert('Something wrong.');
}
}
</script>
そしてこれは私のWebMethodのコードです
[WebMethod]
public static IEnumerable<string> callJS(string search)
{
IEnumerable<string> results = itemList.Where(item => item.Contains(search.ToLower()));
return (results);
}