积极答复者
请问asp.net ajax的autocomplete extender 在实际使用中,如果目标textbox的值是数字值(真正要插入的值是ID)而非字符值怎么办?

问题
答案
-
楼主的基本思想是对的。取得ID和Name,可以把id作为<option>的id即可,如孟老师所言,在你把文字赋给textbox的时候,顺便把对应的id记录到某个隐藏字段。然后通过ajax取得隐藏字段的值进行处理。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2009年11月11日 4:10
-
这要看你的取舍了。
1.如果你要完美的用户体验,那么你可以保持AutoCompleteExtender显示和提交文本,同时在ListView的OnItemInserting和OnItemUpdating截获提交上来的字符串,再转换为整形ID,才交给DataSource控件处理。
2.如果你需要全自动的Binding,你可以让AutoCompleteExtender显示整形ID和字符串,同时选中后只出现整形ID。例如输入123,提示“123456(姓名)”,选中后文本框变为123456。
Microsoft ASP.NET MVP- 已标记为答案 KeFang Chen 2009年11月11日 4:11
全部回复
-
你需要使用一个隐藏的控件记录id值。
谢谢,问题是这个ID如何赋值给隐藏的绑定了真正的字段的Textbox_B控件呢? 下午我刚做了个webservice,已经可以输入第1个汉字,接着把需要查找的表的Name查找出来了。
【孟子E章】
我的一个初步想法是否对,请各位大侠指正:在webservice中,取出ID,Name 两字段,中间加个@或者|字符,然后赋值给要return的string[],这样在页面看起来,下拉列表里查找出来的是选项像 "100@张三","101@李斯" 之类,点击其中一项赋值给被非绑定字段的textbox_A控件,然后,到下个字段时,textbox_A控件发生ontextchanged事件,在这个事件里,我可以把100,101等ID截取,并赋值给隐藏的textbox_B控件(绑定了ID字段的)。
这样做行不行?有无更简便的方法? -
楼主的基本思想是对的。取得ID和Name,可以把id作为<option>的id即可,如孟老师所言,在你把文字赋给textbox的时候,顺便把对应的id记录到某个隐藏字段。然后通过ajax取得隐藏字段的值进行处理。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2009年11月11日 4:10
-
这要看你的取舍了。
1.如果你要完美的用户体验,那么你可以保持AutoCompleteExtender显示和提交文本,同时在ListView的OnItemInserting和OnItemUpdating截获提交上来的字符串,再转换为整形ID,才交给DataSource控件处理。
2.如果你需要全自动的Binding,你可以让AutoCompleteExtender显示整形ID和字符串,同时选中后只出现整形ID。例如输入123,提示“123456(姓名)”,选中后文本框变为123456。
Microsoft ASP.NET MVP- 已标记为答案 KeFang Chen 2009年11月11日 4:11