c# - 此网络方法仅适用于第一个文本框,不适用于所有三个文本框。我发现这也太慢了,因为 1 个文本框正在工作而其他 2 个不工作
问题描述
//asp.net代码 这是asp.net的代码
在这段代码中,我不知道如何使用所有三种网络方法,请帮助我。我真的有可能用 1 个webmethod
完成这件事吗? 在这段代码中,我不知道如何使用所有三个 webmethod,请帮助我。我真的有可能用 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
//网络方法
[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
我不知道为什么会发生这种情况,请帮助我。
解决方案
我认为您在班级上方缺少 [System.Web.Script.Services.ScriptService] ,这样写
// 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
}
希望这可以帮助。
推荐阅读
- numpy-ndarray - 如何将索引相关函数应用于 numpy ndarray?
- django - Django QuerySet Limit 多次访问数据库?
- html - Bootstrap 4 高度 100% 响应
- c# - C# - 我需要访问注册表中的子键,我可以评估父键,
- javascript - 为什么我的数组中缺少 array.from() 中的元素
- ruby-on-rails - 线程样式不会被覆盖
- c++ - 使用 Windows API 操作 RS 端口
- django - Streamfield 模板中的 Wagtail 页面上下文
- c# - 从字符串 C# 中删除特定字符
- compiler-errors - 当我在方法签名中使用 hyper::Client 时,为什么会收到错误“类型参数数量错误”?