ASP.NET AJAX控件和Toolkit文本框使用if语句自动完成

本文关键字:语句 if AJAX NET 控件 文本 Toolkit ASP | 更新日期: 2023-09-27 18:25:25

我正在使用ASP.NET AJAX控件和工具包自动完成.aspx页面中的TextBoxTextBox用作与下拉列表相关联的搜索字段。现在,我只想在下拉列表中选择某个类别时显示自动完成。

对于自动完成,我有这个代码

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string[] DepartmentAuto(string prefixText, int count)
{
  
        string[] _strArray = {  "Factory Management", "Housekeeping", "HR", "Industry Development"}
        return _strArray;
    
}

我的下拉框/文本框的工作方式类似于

void Filter()
{
    if (DropDownList1.SelectedValue.ToString() == "Title")
    {
        ObjectDataSource1.FilterExpression = "Title LIKE '%" + TextBox1.Text + "%' ";
    }
    else if (DropDownList1.SelectedValue.ToString() == "Department")
    {
        ObjectDataSource1.FilterExpression = "Department LIKE '%" + TextBox1.Text + "%' ";
    }
}

我试着把if语句添加到我的自动完成代码中,就像这个一样

 [System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string[] DepartmentAuto(string prefixText, int count)
{
    if (DropDownList1.SelectedValue.ToString() == "Department")
    {
         string[] _strArray = {  "Factory Management", "Housekeeping", "HR", "Industry Development"}
        return _strArray;

    }
}

但后来我得到了两个错误-

DepartenAuto:并非所有代码路径都返回值

非静态字段、方法或属性"需要对象引用;下拉列表1";

能帮我做这件事吗?

ASP.NET AJAX控件和Toolkit文本框使用if语句自动完成

DepartmentAuto:并非所有代码路径都返回值

  • 这是因为您的return语句现在被if块包围,因此如果您的代码没有进入if块,编译器将无法知道返回什么。因此,要么像以前那样删除if条件,要么在大括号之外给出另一个return语句

非静态字段、方法或属性"DropdownList1"需要对象引用

  • 这是因为不能在静态方法中使用控件 您只能访问静态内容中的静态内容所以你必须在下拉列表中找到其他东西进行检查。我建议你继续在JQuery一侧检查一下

希望这能有所帮助。