FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 5204|回复: 5
打印 上一主题 下一主题

实现autoconplete下拉功能,Enter键选择获取不到值,本人已解决

[复制链接]
跳转到指定楼层
楼主
发表于 2012-4-13 15:06:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Vincent 于 2012-4-18 10:15 编辑

if (!IsPostBack)
            {
                ExtAspNet.PageContext.RegisterStartupScript(
                 "var d=Ext.getCmp('" + ddlOrderCode.ClientID + "');" +
                    " d.listWidth=150; " +
                    " d.addListener(\"keyup\",function(f,e){ " +
                    " var arr=['8','16','17','37','38','39','40','13']; " +
                    " var x=e.keyCode; " +
                    " for(var n=0 ;n<arr.length;n++) {if (parseInt(arr[n])==parseInt(x)) {return;} }" +
                    " __doPostBack('loaddata',document.getElementById(\"" + ddlOrderCode.ClientID + "\").value);" +
                    "});"
                );
            }
            else
            {
                if (Request["__EVENTTARGET"] == "loaddata")
                {
                    string input = Request["__EVENTARGUMENT"];
                    ddlOrderCode.Items.Clear();
                    List<his.Model.D_DICT> list = d_dict.GetList(input);

                    foreach (his.Model.D_DICT m in list)
                    {
                        ddlOrderCode.Items.Add(new ExtAspNet.ListItem(m.DRUG_NAME.Trim()+"_"+m.DRUG_CODE.Trim(), m.DRUG_CODE.Trim()));
                    }

                    string strTimeMark = DateTime.Now.Ticks.ToString();
                    ddlOrderCode.Items.Add(new ExtAspNet.ListItem("请输入拼音码或文字进行查找选择", strTimeMark));
                    ddlOrderCode.SelectedValue = strTimeMark;
                    ddlOrderCode.SelectedItem.EnableSelect = false;

                    ExtAspNet.PageContext.RegisterStartupScript("document.getElementById(\"" + ddlOrderCode.ClientID + "\").value=newInput;");
                }
            }
        }
protected override void Render(HtmlTextWriter writer)
        {

            StringWriter strWriter = new StringWriter();
            base.Render(new HtmlTextWriter(strWriter));
            writer.Write(
                strWriter.ToString().Replace("id:\"" + ddlOrderCode.ClientID + "\",", "id:\"" + ddlOrderCode.ClientID + "\",editable: true,hideTrigger:true,")
                );
        }

如图前台实现的效果,如果我用Enter键选择的话,ddl里是有值的,但是点击获取规格没有效果,因为ddl的selectValue根本就没有值,想请教一下,如何才能让enter有用!!!!!









红色部分是改动部分!!!我想这样的功能会很有用的!所以来分享一下!,还有个问题想请教一下大家,就是下拉框中下拉出来的是药名和药品的代码,我想问一下选择之后只让药品在文本框中显示不知有人会做否?或者给个提示也行!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2012-4-14 09:35:02 | 只看该作者
放在上一天了,怎么没人来解答????
板凳
 楼主| 发表于 2012-4-15 14:06:24 | 只看该作者
还是没人嘛?再定一下!!!
地板
发表于 2012-4-15 15:33:43 | 只看该作者
???不太明白你获取规格是什么意思?
5#
 楼主| 发表于 2012-4-16 10:25:37 | 只看该作者
shanzhongfei 发表于 2012-4-15 15:33
???不太明白你获取规格是什么意思?

每种药品都有规格的,根据药品代码到数据库里查找其规格,这里的药品代码是在用户选择药品之后控件自动获得的,即后台这里的代码ddlOrderCode.Items.Add(new ExtAspNet.ListItem(m.DRUG_NAME.Trim()+"_"+m.DRUG_CODE.Trim(), m.DRUG_CODE.Trim()));
6#
 楼主| 发表于 2012-4-18 09:12:20 | 只看该作者
希望有高手过来帮忙看一下。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-10-20 07:57 , Processed in 0.047505 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表