Как связать выпадающий список с веб-службами в ASP.NET с помощью C # - PullRequest
0 голосов
/ 22 февраля 2019

Может ли кто-нибудь помочь мне как связать выпадающий список с веб-службами в ASP.NET, используя C #

    [WebMethod]
public DataTable dropdwnfill()
{
    DataTable ds;
    SqlCommand cmd = new SqlCommand("select itemname from tbl_pro", con);
    SqlDataAdapter dap = new SqlDataAdapter(cmd);
    ds = new DataTable();

    dap.Fill(ds);
    ds.TableName = "MyDt";
    return ds;
}

заранее спасибо

1 Ответ

0 голосов
/ 22 февраля 2019

Если я правильно понимаю требование, вы хотите заполнить раскрывающийся элемент управления со стороны сервера, но он будет вызван из пользовательского интерфейса (например, вызов ajax).

Прежде всего, вы можете сделатьто же самое с методом страницы также.Заполните необходимые данные в методе на стороне сервера (скажем, dropdwnfill ()) и верните коллекцию строк.Затем используйте этот метод с помощью вызова ajax из пользовательского интерфейса и заполните раскрывающийся список.см. ниже:

/*structure to be return*/
   public class DropDownValue
    {
        public string name { get; set; }
        public string value { get; set; }
    }
/*server side page-method*/
        [WebMethod]
        public static List<DropDownValue> dropdwnfill()
        {            
           // sample data population in list
            DropDownValue dropDownValue1 = new DropDownValue();
            dropDownValue1.name = "TestName1";
            dropDownValue1.value = "1";

            DropDownValue dropDownValue2 = new DropDownValue();
            dropDownValue2.name = "TestName2";
            dropDownValue2.value = "2";

            List<DropDownValue> lst = new List<DropDownValue>();
            lst.Add(dropDownValue1);
            lst.Add(dropDownValue2);

            return lst;

        } 

/*Consume in UI*/
$(document).ready(function () {       
        $("[id*=btnLoadDropDown]").click(function () { 
            $.ajax({
                type: "POST",
                url: "default.aspx/dropdwnfill",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (jqXHR) {
                    //do required stuff for error
                    alert(jqXHR.responseText);                    
                }.bind(this),
                success: function (msg) {                    
                    var option = '';
                    if (msg.d.length > 0) {                       
                        for (i = 0; i < msg.d.length; i++) {                            
                            option += '<option value="'+ msg.d[i].value + '">' + msg.d[i].name + '</option>';
                        }                       
                        $('#drpTest').append(option);                       
                    }
                }.bind(this)
            });
            return false;

        });
    });

/*UI element Design*/
<div>
<asp:DropDownList ID="drpTest" runat="server" AutoPostBack ="false" Width="356px"> </asp:DropDownList>
</div>
<asp:Button ID ="btnLoadDropDown" runat ="server" Width="354px" Text="Load Drop Down" AutoPostBack ="false"/>

Во-вторых, целью веб-службы является раскрытие конечной точки.Таким образом, вы также можете создать веб-сервис для получения только данных с сервера, а затем заполнить раскрывающийся список, как показано ранее.Чтобы создать / использовать веб-сервис, вы можете обратиться: Как создать веб-сервис (сервер и клиент) в Visual Studio 2012?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...