将Dropdownlist索引作为参数发送到WS到Javascript,如何?

时间:2014-10-26 12:40:04

标签: javascript c# jquery asp.net web-services

我正在尝试使用Jquery自动完成功能向我的WS发送2个参数:

  1. textbox,我想要完整
  2. 下拉列表索引
  3. 我有一个问题是获取下拉列表索引,因为我只获得了控制器的名称。

    这是我的剧本:

    <script type="text/javascript" language="javascript">
        $(function() {
            $('#<%= TextBoxes1.ClientID%>').autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: "WB/EmployeeService.asmx/GetEmpolyeeId",
                        data: "{ 'Text': '" + request.term + "','SelectedIndex':'" + '#<%= DP1.ClientID %>' + "'}",
                        type: "POST",
                        dataType: "json",
                        contentType: "application/json;charset=utf-8",
                        success: function (result) {
                            response(result.d);
    
                        },
                        error: function (response) {
                            alert(response.responseText);
                        },
                        failure: function (response) {
                            alert(response.responseText);
                        }
                    });
                },
                minLength: 0
            });
    
        });
    
    </script>
    

    这是我的WS:

    public List<string> GetEmpolyeeId(string Text, string SelectedIndex)
    

    我需要做些什么才能让它发挥作用?

2 个答案:

答案 0 :(得分:0)

如您所述,您需要关注2。

  1. 文本框,我想要完整 - request.term,您正确使用它。
  2. 下拉列表索引 - 假设下拉列表ID为DP1,您需要使用以下内容获取其索引
  3. $("#<%= DP1.ClientID %>")[0].selectedIndex

    因此,将所有内容放在一行中,就是

    data: "{ 'Text': '" + request.term + "','SelectedIndex':'" + $("#<%= DP1.ClientID %>")[0].selectedIndex + "'}",

    示例

    &#13;
    &#13;
    function OnChangeVal() {
      alert($("#sel")[0].selectedIndex);
    }
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select onchange="OnChangeVal()" id="sel">
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

我得到了!!! : - )

这就是我所做的:

<script type="text/javascript" language="javascript">
    var ddl = document.getElementById('<%=DP1.ClientID%>');
    $(function () {
        $('#<%= TextBoxes1.ClientID%>').autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "WB/EmployeeService.asmx/GetEmployeeDetails",
                    data: "{ 'Text': '" + request.term + "','SelectedIndex':'" + ddl.selectedIndex  <%--'#<%= DP1.ClientID %>'--%> + "'}",
                    type: "POST",
                    dataType: "json",
                    contentType: "application/json;charset=utf-8",
                    success: function (result) {
                        response(result.d);
                    },
                    error: function (response) {
                        alert(response.responseText);
                    },
                    failure: function (response) {
                        alert(response.responseText);
                    }
                });
            },
            minLength: 0
        });

    });
</script>

我在&#34;数据&#34;中添加了一个变量。 (下拉列表索引),而我在输入函数之前定义了下拉列表。

WS的风格相同。