关于Ajax动态提示的问题,高手进,,,在线等!!!!!~~~~

ZiRRen 2007-04-29 04:26:51
我用AutoCompleteExtender和ScriptManager实现了动态提示,就是记录了你输入的结果.但是我是想动态过滤数据库里的一些东西,比如一个DataTable里的数据,可是不行.不知道怎么回事,还是得用别的方法啊?


[WebMethod]
public string[] GetTextString(string prefixText, int count)
{
DataTable dt = Test.ReportView();
DataView dv = new DataView(dt);
dv.RowFilter = "编码 like '%" + prefixText + "%'";
DataTable dtnew = dv.ToTable();

List<string> list = new List<string>();
foreach (DataRow dr in dtnew.Rows)
{
list.Add(dr["编码"].ToString()+"|"+dr["名称"].ToString());
}
return list.ToArray();


}

急呀,,高手给看一看..
...全文
845 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzhaoli1982 2007-04-30
  • 打赏
  • 举报
回复
[AjaxPro.AjaxMethod]
geek007 2007-04-30
  • 打赏
  • 举报
回复
ajax不能这样用吗?楼上的看看google的自动完成吧
super_shu 2007-04-30
  • 打赏
  • 举报
回复
ajax能这样用吗?您是在客户端调用这方法是吗?我试过在客户端调用绑定数据不成
geek007 2007-04-30
  • 打赏
  • 举报
回复
呵呵 这个分我也接了
<asp:TextBox runat="server" ID="myTextBox" Width="150px"/>
<ajaxToolkit:AutoCompleteExtender
runat="server"
ID="autoComplete1"
TargetControlID="myTextBox" //控制的文本框
ServicePath="WebService.asmx" //WebService名称
ServiceMethod="GetCompletionList" //方法名称
MinimumPrefixLength="1" //从输入的第多少位开始显示
CompletionInterval="10" //读取记录间隔时间
EnableCaching="true" //是否缓存
CompletionSetCount="12" /> //显示最大记录数



using System;
using System.Web;
using System.Data;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;

WebService.cs
/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {

public WebService () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

[WebMethod]
public string[] GetCompletionList(string prefixText, int count)
{
DataSet1TableAdapters.Table1TableAdapter DALDataSet = new DataSet1TableAdapters.Table1TableAdapter();
DataTable dt = DALDataSet.C_SelectCompanyNameLike(prefixText);
count = dt.Rows.Count;
List<string> items = new List<string>(count);
for (int i = 0; i < count; i++)
{
items.Add(dt.Rows[i]["CompanyName"].ToString());
}
return items.ToArray();
}



ZiRRen 2007-04-30
  • 打赏
  • 举报
回复
楼上的,它说找不到这个引用啊..


我装了:AjaxControlToolkit ASPAJAXExtSetup.msi ASPAJAXCTP.msi


是按照:http://blog.csdn.net/kRiSnI/archive/2007/04/18/1569125.aspx
的方法做的..按它的意思应该可以实现我需要的结果的.
HarleyTung 2007-04-30
  • 打赏
  • 举报
回复
JS来调用后台函数进行返回显示提示信息[AjaxMethod]函数体这样。
ZiRRen 2007-04-30
  • 打赏
  • 举报
回复
我看网上说的就是用这个控件就直接可以实现的啊.怎么我弄了半天不行啊.?

ZiRRen 2007-04-30
  • 打赏
  • 举报
回复
大家有好点的例子吗?急死了..
paleyyang 2007-04-30
  • 打赏
  • 举报
回复
不用这东西。自己手写JS。。
xiaoliangwh 2007-04-29
  • 打赏
  • 举报
回复
帮顶
最后一只恐龙 2007-04-29
  • 打赏
  • 举报
回复
自动完成是显示输入过的东西,自己做控件实现吧。
hanguoji84 2007-04-29
  • 打赏
  • 举报
回复
JS来调用后台函数进行返回显示提示信息[AjaxMethod]函数体这样。
ZiRRen 2007-04-29
  • 打赏
  • 举报
回复
而且我把WebService里的方法随便写都能实现自动出来输入过的信息..

高手指点啊..
ZiRRen 2007-04-29
  • 打赏
  • 举报
回复
而且根本就显示不出我的数据表来,只是显示我输入过的东西.我想是不是这个控件不能实现我要的功能啊.
smile9961 2007-04-29
  • 打赏
  • 举报
回复
楼主是说 dv.RowFilter没有过滤掉你不想要的数据吗?用DataTable.Select方法试试,比如:
DataRow[] foundRows;
foundRows = table.Select("Date > '1/1/00'");
ohyear 2007-04-29
  • 打赏
  • 举报
回复
这种用法目前还没用到.帮顶
ZiRRen 2007-04-29
  • 打赏
  • 举报
回复
晕..大家都干吗去了..还不到下班的时间啊
li_shiye 2007-04-29
  • 打赏
  • 举报
回复
ASP.NET AJAX 的东西?!
呵呵。。还没接触过。。喜欢自己写JS。。虽然累! 不过有成就感。。。帮顶!!!

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧