怎么让AutoCompleteExtender支持选中项的Id? 百度上查了查,还是没给搞出来?请教大虾们

解决方案 »

  1.   

    页面放一个哈希表存AutoCompleteExtender所有值选中的时候用哈希表匹配键值就哦了。
      

  2.   

    解决方法:
    前台:<table width="100%">
                    <tr>
                        <td align="left" style=" border:0px;"><asp:TextBox ID="txtShipmentsUnit" Width="100%" runat="server" MaxLength="50"></asp:TextBox></td>
                        <td align="left" style=" border:0px;"><ajaxToolkit:AutoCompleteExtender ID="autoShipmentsUnit" runat="server" ServiceMethod="GetLogisticsUnitList"
                            ServicePath="/WebService/GetLogisticsUnit.asmx" MinimumPrefixLength="1" FirstRowSelected="true" Enabled="true" EnableCaching="false"
                            CompletionSetCount="10" TargetControlID="txtShipmentsUnit" CompletionInterval="100" UseContextKey="true" OnClientItemSelected="OnACEItemSelected">
                        </ajaxToolkit:AutoCompleteExtender></td>
                        <td align="left" style=" border:0px;"><input id="AutoComplete_Hidden" type="hidden" runat="server" /></td>
    </tr></table>JSfunction OnACEItemSelected(source, eventArgs) {
    //            document.getElementById("AutoComplete_Hidden").value = eventArgs.get_value();
                alert("Value值:" + eventArgs.get_value() + "\nText值:" + eventArgs.get_text());
            }  
    cs代码/// <summary>
        /// GetLogisticsUnit 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        [System.Web.Script.Services.ScriptService]
        public class GetLogisticsUnit : System.Web.Services.WebService
        {
            [System.Web.Services.WebMethod]
            [System.Web.Script.Services.ScriptMethod]
            public string[] GetLogisticsUnitList(string prefixText, int count)
            {
                List<string> items = new List<string>(count); 
                DataTable dt = DaTuHeJiaoHua.BLL.BaseSetting.基础_部门.GetDataTable(new Entity.BaseSetting.基础_部门查询 {  部门名称LikeEX = prefixText, 状态 = Entity.Common.State.可编辑.ToString() });
                if (dt != null && dt.Rows.Count > 0)
                {
                    if (dt.Rows.Count < count)
                    {
                        count = dt.Rows.Count;
                    }                foreach (DataRow dr in dt.Rows)
                    {
                        items.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(dr["部门名称"].ToString(), dr["部门ID"].ToString()));
                    }
                    return items.ToArray();
                }
                else
                {
                    return null;
                }
            }
        }