Search code examples
c#asp.netwebmethod

This webmethod is only working for 1st textbox not for all three. I found this too slow also as 1 textbox is working and other 2 is not working


//asp.net code This is a code of asp.net

In this code i don't know how to use all three webmethods please help me in this. Is it really possible i can done this thing with 1 webmethod
In this code i don't know how to use all three webmethods please help me in this. Is it really possible i can done this thing with 1 webmethod

like so
<div class="col-xs-12 col-sm-3">
    <div class="form-group">
        <label class="control-label" for="sel15">Activity</label>
        <asp:TextBox ID="actvity" runat="server" CssClass="form-control"></asp:TextBox>

         <cc1:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server" CompletionListCssClass="srch_box" DelimiterCharacters="" Enabled="True" ServiceMethod="GetListofCountries" MinimumPrefixLength="1" EnableCaching="true" TargetControlID="actvity">
        </cc1:AutoCompleteExtender>
     </div>
</div>

<div class="col-xs-12 col-sm-3">
     <div class="form-group">
        <label class="control-label" for="sel15">Reference No.</label>
        <asp:TextBox ID="refre" runat="server" CssClass="form-control"></asp:TextBox>

        <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" CompletionListCssClass="srch_box" DelimiterCharacters="" Enabled="True" ServiceMethod="refrencenumber" MinimumPrefixLength="1" EnableCaching="true" TargetControlID="refre">
        </cc1:AutoCompleteExtender>
    </div>
</div>

<div class="col-xs-12 col-sm-3">
   <div class="form-group">
     <label>Invoice No.</label>
     <asp:TextBox ID="invoiceno" runat="server" CssClass="form-control"></asp:TextBox>

     <cc1:AutoCompleteExtender ID="AutoCompleteExtender2" runat="server" CompletionListCssClass="srch_box" DelimiterCharacters="" Enabled="True" ServiceMethod="invoicenumber" MinimumPrefixLength="1" EnableCaching="true" TargetControlID="invoiceno">
     </cc1:AutoCompleteExtender>
    </div>
 </div>

//asp.net code
like so

//webmethod

    [System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]

    public static List<string> GetListofCountries(string prefixText)
    {
        DataLayer.DAL dl = new DataLayer.DAL();
        string queryfetchconsul = "Select distinct project_name from mis_projects_master where project_name ilike '%" + prefixText + "%' ";
        DataTable dt = dl.executeGetData(queryfetchconsul);

        List<string> CountryNames = new List<string>();

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            CountryNames.Add(dt.Rows[i]["project_name"].ToString());
        }

        return CountryNames;
    }

    [System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]
    public static List<string> refrencenumber(string prefixText1)
    {
        DataLayer.DAL dl = new DataLayer.DAL();
        string queryfetchconsul1 = "Select distinct ref_number from mis_project_details where ref_number ilike '%" + prefixText1 + "%' ";
        DataTable dt1 = dl.executeGetData(queryfetchconsul1);

        List<string> CountryNames1 = new List<string>();

        for (int i = 0; i < dt1.Rows.Count; i++)
        {
            CountryNames1.Add(dt1.Rows[i]["ref_number"].ToString());
        }

        return CountryNames1;
    }

    [System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]
    public static List<string> invoicenumber(string prefixText2)
    {
        DataLayer.DAL dl = new DataLayer.DAL();
        string queryfetchconsul2 = "Select distinct inv_no from mis_lumpsum_milestones_fin_progress where inv_no ilike '%" + prefixText2 + "%' ";
        DataTable dt2 = dl.executeGetData(queryfetchconsul2);

        List<string> CountryNames2 = new List<string>();

        for (int i = 0; i < dt2.Rows.Count; i++)
        {
          CountryNames2.Add(dt2.Rows[i]["inv_no"].ToString());
        }
        return CountryNames2;
    }

    //webmethod

I have no idea why this happen please help me .


Solution

  • I think you are missing [System.Web.Script.Services.ScriptService] above your class, write it like this

    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        [System.Web.Script.Services.ScriptService]
    
        public class YourClass : System.Web.Services.WebService
        {
        [System.Web.Script.Services.ScriptMethod()]
            [System.Web.Services.WebMethod]
    
            public static List<string> GetListofCountries(string prefixText)
            {
                DataLayer.DAL dl = new DataLayer.DAL();
                string queryfetchconsul = "Select distinct project_name from mis_projects_master where project_name ilike '%" + prefixText + "%' ";
                DataTable dt = dl.executeGetData(queryfetchconsul);
    
                List<string> CountryNames = new List<string>();
    
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    CountryNames.Add(dt.Rows[i]["project_name"].ToString());
                }
    
                return CountryNames;
            }
    
            [System.Web.Script.Services.ScriptMethod()]
            [System.Web.Services.WebMethod]
            public static List<string> refrencenumber(string prefixText1)
            {
                DataLayer.DAL dl = new DataLayer.DAL();
                string queryfetchconsul1 = "Select distinct ref_number from mis_project_details where ref_number ilike '%" + prefixText1 + "%' ";
                DataTable dt1 = dl.executeGetData(queryfetchconsul1);
    
                List<string> CountryNames1 = new List<string>();
    
                for (int i = 0; i < dt1.Rows.Count; i++)
                {
                    CountryNames1.Add(dt1.Rows[i]["ref_number"].ToString());
                }
    
                return CountryNames1;
            }
    
            [System.Web.Script.Services.ScriptMethod()]
            [System.Web.Services.WebMethod]
            public static List<string> invoicenumber(string prefixText2)
            {
                DataLayer.DAL dl = new DataLayer.DAL();
                string queryfetchconsul2 = "Select distinct inv_no from mis_lumpsum_milestones_fin_progress where inv_no ilike '%" + prefixText2 + "%' ";
                DataTable dt2 = dl.executeGetData(queryfetchconsul2);
    
                List<string> CountryNames2 = new List<string>();
    
                for (int i = 0; i < dt2.Rows.Count; i++)
                {
                  CountryNames2.Add(dt2.Rows[i]["inv_no"].ToString());
                }
                return CountryNames2;
            }
    
            //webmethod
    
    }
    

    Hope this helps.