【问题标题】:how to search in combobox by database如何按数据库在组合框中搜索
【发布时间】:2013-11-12 09:43:30
【问题描述】:
protected void Page_Load(object sender, EventArgs e)
{
    dr = new MySqlDataAdapter("select * from cus_mas_det", conn);
    ds = new DataSet();

    dr.Fill(ds, "cus_mas_det");
    DataTable CodeDesc = new DataTable();
    conn.Open();
    dr = new MySqlDataAdapter("select tvl_code, concat_ws(',', tvl_code, citi_name) citiname from code_desc where travel_mode = 'BUS'", conn);
    ds1 = new DataSet();
    dr.Fill(ds1);
    ddlfrom.DataSource = ds1;
    ddlfrom.DataTextField = "citiname";
    ddlfrom.DataValueField = "tvl_code";
    ddlfrom.DataBind();
    txtbookingdate.Text = System.DateTime.Now.ToString("yyyy/MM/dd");
    txtbookingdate.ReadOnly = true;
    txtbookingref.Text = autoid();
    txtbookingref.ReadOnly = true;
}

我有一个 asp 页面,其中有文本框和组合框,我正在从数据库中填充组合框,如上面的代码所示,我可以填充它。
现在我的问题是我想通过在组合框中键入任何单词来搜索 elemnets..
例如,如果我输入单词“Ab”,它应该显示所有以“Ab”开头的元素..
怎么做?

   <asp:ComboBox ID="ddlfrom" class="chzn-select" runat="server"  
                                            DataTextField="name" DataValueField="name" MaxLength="0" 
                                            style="display: inline;" 
                                            onselectedindexchanged="ddlfrom_SelectedIndexChanged1">

                                        </asp:ComboBox>                                       

【问题讨论】:

    标签: c# asp.net combobox dataset database-connectivity


    【解决方案1】:

    你可以从这里harvesthq.github.io/chosen/使用选择的jquery插件

    所以你可以在下拉列表中搜索关键字试试这个插件。

    这可能有助于您使用How do I use Chosen jQuery in my html file?

    将所需的 js 和 css 文件添加到页面将类分配给下拉列表,如下所示:-

        <head>
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
        <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
        <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
        <script src="http://harvesthq.github.com/chosen/chosen/chosen.jquery.js"></script>
        <link rel="stylesheet" href="http://harvesthq.github.com/chosen/chosen/chosen.css">
    <script type="text/javascript">
    $(function(){
        $(".chzn-select").chosen();
    });
    </script>
        </head>
        <body>
    

    将类分配给您的下拉列表

    <asp:DropDownList ID="dr_list" runat="server" CssClass="chzn-select">
       <asp:ListItem Value="-1" Text=""></asp:ListItem>
          </asp:DropDownList>
    

    下载Here

    【讨论】:

    • 正是我需要的。你能告诉我应该如何以及在哪里添加那个插件吗??
    • 您不需要更改 selected.js 文件。只需使用修改后的代码更新问题。您是否将类分配给下拉列表?
    • 我也在做同样的事情……还没来……:(
    • 没有显示任何错误...我只是从我的下拉列表中的数据库中获取所有值,就像我以前得到的一样...没有变化...
    • 尝试使用下拉列表而不是组合框看看它是否有效
    【解决方案2】:

    我不认为你可以用 ASP.Net 组合框做这样的搜索,而是你应该尝试一些事情like

    【讨论】:

      【解决方案3】:

      您需要使用 AJAX 执行此客户端。

      1. 创建一个 Web 服务或使用一个页面方法,该方法将一些搜索文本作为参数,然后返回您需要的数据。

      2. 客户端 - 使用 JavaScript/jQuery 处理按键事件并更新您的组合框或您当时使用的任何控件。

      使用 jQuery 的示例:

      $('#<%= txtBox.ClientID %>').keypress(function () {
      
          var currentText = $(this).val();
      
          $.get('some_web_service', { searchText: currentText }, function (data) {
              // update combo box here using data
          });
      
      });
      

      这假设您有一个名为 some_web_service 的 Web 服务,它将返回您需要的数据。

      或者,您可以将整个内容放在 UpdatePanel 中并处理按键事件,但这样做的性能不会那么好。

      【讨论】:

      • 你的意思是我必须为它添加一个新的 jscript 文件..??
      • 在单独的 javascript 文件中,或者您可以将 javascript 放在页面中的 标记中
      • 为什么我需要网络服务..?..你能解释一下吗..?
      • 如果我理解正确,您希望在用户开始在文本框中输入时更新值列表。这是一个需要在客户端处理的事件,因此您使用 JavaScript 来执行此操作。但是,您拥有的值列表需要更改,并且它们需要来自服务器。做到这一点的唯一方法是使用您的脚本返回到服务器以获取值,因此您需要一个 Web 服务或 PageMethod 才能让脚本转到。
      • 好的,到目前为止我已经完成了......现在我必须在页面方法中做什么......??
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 2016-07-10
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多