AJAX.NET实现根据输入内容自动填充下拉框

vb.net语言下Jquery+Ajax+ashx实现下拉框异步 大多Jquery+Ajax+ashx异步方法是C#写的,这里分享一下用vb写的ashx,让大家少走弯路。HTML前端代码:<select id="select">     <option value=1>1</option>     <option value=2>2</option>     <option value=3&g 阅读详情
 
      要在ASP.NET中实现AJAX,请先下载ajax.dll并引用,并且最好对AJAX的基本原理有所了解。有一本电子本叫《ajax基础教程》,网上有下的,讲得很清楚。里面代码是JAVA版,不过没有关系。下载地址(试试):
 
      这是AJAX的典型应用之一,即根据用户在输入框内输入的内容来搜索数据库,然后把内容显示出来,当然不一定非要显示在下拉框中,也可以放在其它的地方,实际上这就是JavaScript控制的部分了。
 
      比如我觉得优快云论坛可以加上这个功能,当发贴者要发贴问问题时,可以用AJAX根据用户输入的内容动态的到后台查询数据库,将查询到的结果,也就是类似的问题显示在页面上,这样用户根据搜索到的帖子就可以把问题解决掉,可以节约时间。
 
      我们这里只是把搜索到的内容填充到下拉框中,以便用户精确定位。效果图以前发过。 如下:用户输入学号,动态填充填充下拉框。
 
      一.AJAX可以用JavaScript来调用服务器端方法,如果要想使服务器端的方法被JS调用,必须做以下两件事情

1.在页加载事件期间,通过Ajax.Utility.RegisterTypeForAjax注册包含服务端函数的类,我们的页面后台是stuInfoView.aspx.cs,等一会要调用的服务器端函数也在这里面,所以用下面的语句。(注意是在private void Page_Load(object sender, System.EventArgs e)里面写的)

Ajax.Utility.RegisterTypeForAjax(typeof(stuInfoView));

2.给将要被JS调用的函数标上Ajax.AjaxMethodAttribute,由于以Attribute结尾的可以省略(见MSDN“元数据”),也可以写成Ajax.AjaxMethod。我们要用到的服务端函数是getMatchedStuId(),于是在像如下那样定义:

[Ajax.AjaxMethod()]
public static string[] getMatchedStuId(string stuId)
{
/*这个就是JS要调用的函数。实际上是接受JS参数stuId,然后搜索数据库,
 * 将满足条件的记录存入dataset再放到string数组中,再返回给客户端JS,由JS接着处理(填充到下拉框中)
 * 下面的搜索只是方法之一
 * 实际上最好用SQL语句(like)直接把相关记录搜索出来
 */
 DataSet ds = (new projClass()).getStuInfo();//这里返回一个dataset,即所有的记录
 DataRow[] drs = ds.Tables["stuInfo"].Select("stuId like '"+stuId+"%'");//过滤,只留下满足要求的
 //将结果放入一个一个string数组中,返回给客户端的JS
 if(drs != null)
  {
   string[] result = new string[drs.Length];
    for(int i=0;i<drs.Length;i++)
     result[i] = Convert.ToString(drs[i]["stuId"]);
   return result;
  }
   return null;
}

     二.因为用户输入内容后要马上响应到后台,所在要给输入框(tbx_query)加上keyup事件,用户一输入值就把输入框的值送到后台去搜索。由于是服务器控件,加keyup事件如下:(在CS文件中)

this.tbx_query.Attributes.Add("onkeyup","matchStuId(this.value)");

     三.客户端JavaScript代码

1.matchStuId(stuId),这就是keyup事件,只要焦点在tbx_query中,并且用户按下了键盘,即调用此函数。

function matchStuId(stuId)
{
 /*关于下面的这一句可能好多人不明白,stuInfoView即后台的类名了,getMatchedStuId是后台允许客户端JS调用的函数
 *但是你可能要问,后台只有一个参数,怎么这里有两个?小山的blog上的确有人这样问
 *可以这样解释,前面的参数是用到的参数,最后的那个是服务端返回的内容到达客户端后将要调用的JS函数,它接受服务器端返回的内容
 *实际上就是XMLHttpRequest(AJAX技术的核心)对象readyStatus变为4时,客户端该怎么去处理服务器端返回的内容
 *我们用CallBack这个JS函数来处理返回的内容,下面会提到,于是这样写。说得很清楚吧。
 */
 stuInfoView.getMatchedStuId(stuId,CallBack);
   
}

2.CallBack,接受后台函数传递的内容进行一系列处理

function CallBack(response)//response是后台传递过来的内容,也就是后台函数getMatchedStuId返回的一个string数组
{
 var matchddl = document.Form1.ddl;//即我们要填充的下拉框,这个下拉框是放在一个div中的。
 if(response.value.length != 0)
 {
  setdiv();//对包含下拉框的div进行位置处理,可不能让它随便在页面上放
  matchddl.options.length = 0;
  matchddl.size = response.value.length;//这句话,你去掉试试?可能会不爽,它是控制下拉框长度的,免得有滚动条
  for(var i=0;i<response.value.length;++i)
  matchddl.options[matchddl.options.length] = new Option(response.value[i]);//将string数组里面的元素填充到下拉框中
 }
 else document.getElementById("ddldiv").style.display = 'none';//如果客户端没有返回内容,div不可见,即下拉框不可见
}

3.setdiv()对层进行处理的函数

function setdiv()
{
 //根据输入框的位置来设置div的位置,不用解释了。
 var tbx = document.Form1.tbx_query;
 var ddldiv = document.getElementById("ddldiv");
 ddldiv.style.display = '';
 if(tbx.value =="")
 ddldiv.style.display='none';//如果输入框被清空了,也不可见
 var etop = tbx.offsetTop;
 var eleft = tbx.offsetLeft;
 ddldiv.style.top = etop+180;
 ddldiv.style.left = eleft+35;
}

4.下拉框点击事件
 
function selectthis(sel)
{
 //下拉框点击事件,用户点击了下拉框后,把点击的那一条记录显示到输入框中
 document.getElementById('tbx_query').value = sel.options[sel.selectedIndex].text;
  
}

     四.客户端层与下拉框的HTML代码,这段代码随便扔在哪里面都可以,反正它在页面上显示的位置不是它自己决定的。

<div id="ddldiv" style=" DISPLAY: none;Z-INDEX: 99;POSITION: absolute"><SELECT id="ddl" onclick="selectthis(this)"></SELECT></div>

over!希望对你有用。
欢迎交流:
> wht6411@126.com
Ajax技术实现无限级联动下拉框项目实战 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它允许网页动态地读取服务器上的数据,并在用户界面上进行展示。通过Ajax,前端页面可以仅通过JavaScript异步地与后端服务器交换数据。用户在使用联动下拉框时,首先会与最顶层的下拉菜单进行交互。一旦用户选择了其中一个选项,页面就会异步地向服务器发出请求,获取与之相关联的次级数据。然后,次级下拉菜单会根据这些数据进行更新,展示新的选项列表供用户选择。 阅读详情

相关推荐

构建ASP.NET可多选下拉框控件

在Visual Studio中创建自定义ASP.NET控件项目,是开发自定义控件的第一步。这一步骤通常涉及以下步骤:打开Visual Studio。选择“创建新项目”。在项目类型中选择“ASP.NET Web 应用程序(.NET Framework)”。为项目命名,例如“CustomControlDemo”,并选择合适的位置。点击“创建”按钮后,选择“Web 控件库”模板。点击“创建”按钮,Visual Studio将创建一个新的Web控件库项目。

weixin_31688273的博客 835

AJAX基本应用之:根据输入内容自动填充下拉框

 要在ASP.NET中实现AJAX,请先下载ajax.dll并引用,并且最好对AJAX的基本原理有所了解。有一本电子本叫《ajax基础教程》,网上有下的,讲得很清楚。里面代码是JAVA版,不过没有关系。下载地址(试试): http://www.bomoo.com/ebook/ebook.php/5045.htmlhttp://www.leafz.com/article.asp?id=223

1530

使用Ajax实现数据库模糊查询并在下拉框中动态显示数据

Ajax(Asynchronous JavaScript and XML)技术的兴起,主要是为了解决传统Web应用中页面需要完全刷新才能响应用户操作的弊端。它允许JavaScript与服务器进行异步通信,通过异步交互获取数据,更新网页的局部内容,而无需重新加载整个页面。这种技术的应用极大地提高了用户界面的响应速度,优化了用户体验。Web服务是一种基于Web的应用程序接口(API),它允许计算机程序在网络上进行通信。它的定义扩展了因特网功能,提供了通过Web协议传输信息、请求和响应的能力。

weixin_42576804的博客 906

input界面用的下拉列表框ajax交互

sinosoft var select = ""; select += "-请选择-"; if (value != "") { var retValue = $.ajax({ async:false, type: "POST", url: "opine-query!getCatalogsByNode

sunvsjay1890的专栏 749

Jquery Ajax 实现自动填充地址。

Jquery Ajax 实现自动填充地址。

使用gsplat进行3D高斯泼溅的方案

gsplat 不是一个软件,而是一个深度优化CUDA的开源Python库。它的作者是 Nerfstudio 团队,这个团队最出名的项目是 Nerfstudio,是对 NeRFs 方法支持最好的一套框架。据其所述,出于对新一代技术的好奇,他们构建了 gsplat 这个库。它支持 Windows/Linux 两个系统,使用前必须准备好 Nvidia 显卡。跑这个项目真是特别费劲,官方的文档支持不够完善,以至于遇到问题,开发者们都只能在issue区里抱团取暖。

兴趣使然的创作者 2105

autocomplete结合ajax仿百度输入关键字出现下拉框

用到的JS和CSS: JS部分: //仿百度下拉框 $("#codeItemNamezg").autocomplete({ source:function(request,response){ //缓存,便于直接从缓存取值,不用每次请求都调用AJAX va...

cxws110的博客 311

深入解析AndroidManifest.xml与device_admin.xml:打造完美DeviceOwner应用配置

本文深入解析了Android企业级开发中DeviceOwner应用的核心配置文件AndroidManifest.xml与device_admin.xml。详细阐述了如何精准声明DeviceAdminReceiver、定义管理策略,并提供了通过ADB命令进行设置与验证的实战指南,帮助开发者构建权限完整、配置正确的设备所有者应用。

ice55的博客 680

使用jquery Ajax异步刷新 下拉框

https://www.cnblogs.com/c-supreme/p/8687437.html

qq_33416416的博客 650

从零开始:使用Mask2Former训练你的专属图像分割数据集

本文详细介绍了如何使用Mask2Former训练自定义图像分割数据集,从环境配置、数据集准备到模型训练与优化。通过实战技巧和问题排查指南,帮助开发者高效完成从零开始的图像分割任务,特别适合需要处理自定义数据集的AI研究人员和工程师。

weixin_30566063的博客 642

qt工程引入opencv库步骤

第一步:新建qt工程 第二步:在工程名.pro文件中添加opencv库的路径                   INCLUDEPATH += /home/liyuanzhe/opencv-2.4.8/include/opencv \ /home/liyuanzhe/opencv-2.4.8/include/opencv2 LIBS += /home/liyuanzhe/open

superyuanzhe的专栏 5722

ajax实现类似百度和google的下拉框原理

大家在访问 google或百度的时候,假如要搜索“阿凡达”,我们可能只需要输入一个  “阿”字,网站就会自动匹配一些词组供我们选择,这个设计非常人性化。今天我们就此技术简要介绍,本文假设读者不清楚ajax技术细节。  先说说AJAX,我之前也没有关注过这方面,稍微了解了一下,其实它就是一个客户端脚本与服务器动态通信,在WEB界面不刷新的情况下就可以进行交互的一个技术。这个技术能带来

码农成长日记 4670

matlab安装libsvm常见问题

matlab安装libsvm常见问题 libsvm的官网链接:LIBSVM -- A Library for Support Vector Machines.

cqujcy的博客 1535

AJAX 无刷新 文本框提示条,用层来提示[原创]

根据"AJAX基本应用之:根据输入内容自动填充下拉框。(ASP.NET版)[转] ",更改的提示,可用方向盘上下选择需要的内容,文本框无记录时,按删除键自动进行提示 前台代码@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="ajax10.WebForm2" %>D

BaDa.NET 1929

YOLOv8改进 | 注意力机制 | 添加DAttention (DAT)注意力机制实现极限涨点

本文给大家带来的是YOLOv8改进DAT的教程,其发布于2022年CVPR2022上同时被评选为Best Paper,由此可以证明其是一种十分有效的改进机制,其主要的核心思想是:引入可变形注意力机制和动态采样点(听着是不是和可变形动态卷积DCN挺相似)。同时在网络结构中引入一个DAT计算量由8.9GFLOPs涨到了9.4GFLOPs。本文的讲解主要包含三方面:DAT的网络结构思想、DAttention的代码复现,如何添加DAttention到你的结构中实现涨点,下面先来分享我测试的对比图。

Snu77的博客 1万+

基于Mask-RCNN网络的书架图书书脊分割和检测(含代码)

图书馆的书架上的图书书脊分割/检测对于图书书名等信息的识别具有重要意义,因此,该博客基于Mask-RCNN网络实现了图书书脊的分割和检测,有利于进一步利用ocr文字识别技术实现图书书名等信息的入库。如下图所示,为书架原始数据和分割/检测后的结果。(本文已训练模型,无需训练)

qq_44619530的博客 2025

AJAX基本应用之:根据输入内容自动填充下拉框。(ASP.NET版)[转]

要在ASP.NET中实现AJAX,请先下载ajax.dll并引用,并且最好对AJAX的基本原理有所了解。有一本电子本叫《ajax基础教程》,网上有下的,讲得很清楚。里面代码是JAVA版,不过没有关系。       这是AJAX的典型应用之一,即根据用户在输入框内输入的内容来搜索数据库,然后把内容显示出来,当然不一定非要显示在下拉框中,也可以放在其它的地方,实际上这就是JavaScript控

BaDa.NET 1287

YOLOv11低照度目标检测优化方案:基于SCINet可训练预处理主干的全流程实现指南

创建一个新的Python文件,如。

FJN110的博客 188

ajax方法完成选择下拉框级联效果

ajax方法完成选择下拉框级联效果

Healer 1255

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择1.建立一aspx页面,html代码 HTML>    HEAD>        title>WebForm1title>        SCRIPT language="javascript">                        //城市-----------------------------

3216

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

html 表单自动填充,自动填充Web表单的方法与流程

本发明涉及表单填充技术领域,特别涉及一种基于AJAX框架和HTML自定义属性自动填充Web表单的方法。背景技术:HTML是用来描述网页的一种语言,是一种超文本标记语言(Hyper Text Markup Language),HTML使用标记标签来描述网页,HTML标记标签通常称为HTML标签(HTML tag),如尖括号包围的关键字,等,HTML标签具体呈现的内容以及样式是根据标签中的属性进行展示...

weixin_39976951的博客 2361

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一个ajax.Net库的使用例子--下拉框联动

<br />Default.aspx.csusing System;<br />using System.Data;<br />using System.Configuration;<br />using System.Collections;<br />using System.Web;<br />using System.Web.Security;<br />using System.Web.UI;<br />using System.Web.UI.WebControls;<br />using Sys

WesLon的专栏 2403
上一篇: ASP.NET AJAX v1.0安装及部署
下一篇: Asp.net 2.0 Ajax 验证用户是否存在
Iamarmy
博客等级 码龄23年 23粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值