2016-09-19 45 views
-1

我在写一个asp.net应用程序,我试图根据输入的搜索词填充下拉列表。从aspx代码页将值传递给一个类

我需要一种方法将搜索词发送到我用作数据源的列表中。

这是aspx.cs页面上我LoadFilteredDropdown功能:

protected void LoadFilteredDropdown(string term) 
{ 
    // send term to Services.StaticLists.Master.CLI.Active_Filtered_List here 
    ddlClientFiltered.Items.Clear(); 
    ddlClientFiltered.Items.Add(new ListItem("- Select", "0")); 
    ddlClientFiltered.AppendDataBoundItems = true; 
    ddlClientFiltered.DataSource = Services.StaticLists.Master.CLI.Active_Filtered_List; 
    ddlClientFiltered.DataBind(); 
    ddlClientFiltered.SelectedIndex = 0; 
} 

这里是从CLI.cs页面Active_Filtered_List代码:

private static List<DefaultDesc_List> cli_Active_Filtered_List = null; 
public static List<DefaultDesc_List> Active_Filtered_List 
{ 
    get 
    { 
     var db = new Entities(); 
     string term = ""; // receive the term here 
     var results = (from cli in db.CDC_M_Client_CLI 
         where cli.CLI_Active == true && 
         cli.CLI_Name.StartsWith(term) 
         orderby cli.CLI_Name 
         select new 
         { 
          cli.CLI_Id, 
          cli.CLI_Name, 
          cli.CLI_Active 
         }).ToList(); 
     cli_Active_Filtered_List = new List<DefaultDesc_List>(); 
     foreach (var result in results) 
     { 
      if(result.CLI_Active) 
      { 
       cli_Active_Filtered_List.Add(new DefaultDesc_List() 
       { 
        Id = result.CLI_Id, 
        Desc = result.CLI_Name 
       }); 
      } 
     } 

     return cli_Active_Filtered_List; 
    } 
} 

正如你可以在评论见,那就是我想从中发送价值的地方以及将它发送到的目的地,我将如何实现该目标?

编辑: 不知道这是否有助于但这里的DefaultDesc_List类:

public class DefaultDesc_List 
{ 
    public int Id { get; set; } 
    public string Desc { get; set; } 

    public virtual ICollection<DefaultDesc_List> DefaultDesc_Lists { get; set; } 
} 

回答

1

只是通过长期作为参数:

protected void LoadFilteredDropdown(string term) 
{ 
// send term to Services.StaticLists.Master.CLI.Active_Filtered_List here 
ddlClientFiltered.Items.Clear(); 
ddlClientFiltered.Items.Add(new ListItem("- Select", "0")); 
ddlClientFiltered.AppendDataBoundItems = true; 
ddlClientFiltered.DataSource = Services.StaticLists.Master.CLI.Active_Filtered_List(term); 
ddlClientFiltered.DataBind(); 
ddlClientFiltered.SelectedIndex = 0; 
} 


    private static List<DefaultDesc_List> cli_Active_Filtered_List = null; 
public static List<DefaultDesc_List> Active_Filtered_List(string term) 
{ 
     var db = new Entities(); 
    string term = ""; // receive the term here 
    var results = (from cli in db.CDC_M_Client_CLI 
        where cli.CLI_Active == true && 
        cli.CLI_Name.StartsWith(term) 
        orderby cli.CLI_Name 
        select new 
        { 
         cli.CLI_Id, 
         cli.CLI_Name, 
         cli.CLI_Active 
        }).ToList(); 
    cli_Active_Filtered_List = new List<DefaultDesc_List>(); 
    foreach (var result in results) 
    { 
     if(result.CLI_Active) 
     { 
      cli_Active_Filtered_List.Add(new DefaultDesc_List() 
      { 
       Id = result.CLI_Id, 
       Desc = result.CLI_Name 
      }); 
     } 
    } 

    return cli_Active_Filtered_List; 
    } 
+0

这样称呼它的功能。当我做到这一点:“这个名字‘得到’没有在目前情况下存在” –

+0

我错过了你有这样的属性。把它改成一个函数 - 取出get; –

+0

谢谢,解决了它:) –

0

打开Active_Filtered_List的功能,并采取参数为term

public static List<DefaultDesc_List> Active_Filtered_List(string term) 
{ 
    ...  
} 

从你LoadFilteredDropdown功能

protected void LoadFilteredDropdown(string term) 
{ 
    // send term to Services.StaticLists.Master.CLI.Active_Filtered_List here 
    ddlClientFiltered.Items.Clear(); 
    ddlClientFiltered.Items.Add(new ListItem("- Select", "0")); 
    ddlClientFiltered.AppendDataBoundItems = true; 
    ddlClientFiltered.DataSource 
     = Services.StaticLists.Master.CLI.Active_Filtered_List(term); // <-- here 
    ddlClientFiltered.DataBind(); 
    ddlClientFiltered.SelectedIndex = 0; 
} 
+0

当我这样做:“名称'get'在当前上下文中不存在” –

相关问题