ASP.NET能不能做出这样的效果 效果图:就是一个TextBox输入文字的时候,弄一个GridView出来提示,怎么做啊,求教,教教我 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是当文本框失去焦点 gridview的值 就会发生改变吗?可以写个事件 然后把文本框的值当作查询条件,再去数据库查找到对应的数据,绑定gridview ASP.Net要实现这样的比较麻烦,用Ajax可以实现,要对javascript比较熟才行 1.做一个div层,把GRIDVIEW控件放进去,然后用JS控制其显示与隐藏,用CSS定位,这样有一个问题,就是刷新问题,可能会把层隐藏掉,你可以在DIV外面,加一个无刷新组件;2.使用AJAX,动态去数据,用JS去innerhtml 举一个火车票查询的例子建一个web service在其方法中写using System;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Linq;using BLL; //业务逻辑层空间using Models; //数据模型实体层空间using System.Collections.Generic; //泛型集合空间[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。// [System.Web.Script.Services.ScriptService]public class MyService : System.Web.Services.WebService{ public MyService() { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } //[WebMethod] //public string HelloWorld() { // return "Hello World"; //} [WebMethod(Description = "根据始发站和终点站查询")] public List<Tickets> GetTicketsByStartAndEndStation(string startStation, string endStation) { //调用业务层相关方法,获取数据 return TicketsManager.GetTicketsByStartAndEndStation(startStation, endStation); } [WebMethod(Description = "根据车次查询")] public List<Tickets> GetTicketsByTrainNumber(string trainNumber) { //调用业务层相关方法,获取数据 return TicketsManager.GetTicketsByTrainNumber(trainNumber); } }在页面上调用public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// 查询数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lkbFind_Click(object sender, EventArgs e) { //System.Threading.Thread.Sleep(3000); TrainService.Service service = new TrainService.Service(); GridView1.DataSource = service.GetTicketsByCon(txtStart.Text, txtEnd.Text); GridView1.DataBind(); } 页面代码如下:<body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" MinimumPrefixLength="1" CompletionSetCount ="10" ServiceMethod="GetTicketsByKey" ServicePath="~/StationQuery.asmx" TargetControlID="txtStart"> </cc1:AutoCompleteExtender> <asp:Label ID="Label1" runat="server" Text="出发站:"></asp:Label> <asp:TextBox ID="txtStart" runat="server">珠海</asp:TextBox> <asp:Label ID="Label2" runat="server" Text="终点站:"></asp:Label> <asp:TextBox ID="txtEnd" runat="server">广州</asp:TextBox> <asp:LinkButton ID="lkbFind" runat="server" OnClick="lkbFind_Click"><img border="0" src="img/go.gif">查 询</img></asp:LinkButton> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None"> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <Columns> <asp:BoundField DataField="Number" HeaderText="编 号" /> <asp:BoundField DataField="BeginStation" HeaderText="出发站" /> <asp:BoundField DataField="EndStation" HeaderText="终点站" /> <asp:BoundField DataField="beginTime" DataFormatString="{0:yyyy-MM-dd hh:ss}" HeaderText="出发时间" /> <asp:BoundField DataField="endTime" DataFormatString="{0:yyyy-MM-dd hh:ss}" HeaderText="结束时间" /> <asp:BoundField DataField="Price" DataFormatString="{0:F2}" HeaderText="价格" /> </Columns> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#999999" /> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> </asp:GridView> <asp:UpdateProgress ID="UpdateProgress1" runat="server"> <ProgressTemplate> 数据正在加载中.... </ProgressTemplate> </asp:UpdateProgress> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> </asp:UpdatePanel> <asp:Timer ID="Timer1" runat="server" Interval="3000" ontick="Timer1_Tick"> </asp:Timer> </form> </body>希望能帮到你 图哪去了。显示Gridview还是下拉列表 全文索引吧,否则数据量稍大点,Ajax什么的都可能是浮云了,超时吧 和asp.net什么关系,用juqery做一个就行啦 如果是普通的asp.net页面,弄个数据绑定控件就可以做到了如果说asp.net实现winform的无刷新,那可以用 microsoft Ajaxhttp://msdn.microsoft.com/zh-cn/library/bb398874.aspx很容易的,根本不是去编写javascript实现无刷新 google 搜 jquery 自动完成用什么GridView 不嫌慢嘛 texbox的键盘按下事件onkeydown,用js,hander无刷新....添加数据 根据类动态生成SQL语句 404错误页指定问题 一个有潜在危险的要求。从客户端中检测到(ctl00$ $ $ contentplaceholder2submit1 如何得到今天生日的用户 求获取一段字符串中汉字的正则表达式! 寻求一个新闻发布系统的实例 GridView中ItemTemplate问题!高手指点! ○在DataGrid中编辑某一行的问题 本人菜鸟一只 求大神一枚 关于单选钮radiobuttonlist,问题多多,请帮忙?怎么觉得很不方便哪? asp.net的Treeview,想把根结点下的子节点不显示,下面的代码怎么没用呢? 求个正则表达式
可以写个事件 然后把文本框的值当作查询条件,再去数据库查找到对应的数据,绑定gridview
题,可能会把层隐藏掉,你可以在DIV外面,加一个无刷新组件;
2.使用AJAX,动态去数据,用JS去innerhtml
建一个web service
在其方法中写
using System;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;using BLL; //业务逻辑层空间
using Models; //数据模型实体层空间
using System.Collections.Generic; //泛型集合空间[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class MyService : System.Web.Services.WebService
{
public MyService()
{ //如果使用设计的组件,请取消注释以下行
//InitializeComponent();
} //[WebMethod]
//public string HelloWorld() {
// return "Hello World";
//} [WebMethod(Description = "根据始发站和终点站查询")]
public List<Tickets> GetTicketsByStartAndEndStation(string startStation, string endStation)
{
//调用业务层相关方法,获取数据
return TicketsManager.GetTicketsByStartAndEndStation(startStation, endStation);
} [WebMethod(Description = "根据车次查询")]
public List<Tickets> GetTicketsByTrainNumber(string trainNumber)
{
//调用业务层相关方法,获取数据
return TicketsManager.GetTicketsByTrainNumber(trainNumber);
}
}在页面上调用
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
/// <summary>
/// 查询数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lkbFind_Click(object sender, EventArgs e)
{
//System.Threading.Thread.Sleep(3000);
TrainService.Service service = new TrainService.Service();
GridView1.DataSource = service.GetTicketsByCon(txtStart.Text, txtEnd.Text);
GridView1.DataBind();
}
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
MinimumPrefixLength="1"
CompletionSetCount ="10"
ServiceMethod="GetTicketsByKey"
ServicePath="~/StationQuery.asmx"
TargetControlID="txtStart">
</cc1:AutoCompleteExtender>
<asp:Label ID="Label1" runat="server" Text="出发站:"></asp:Label>
<asp:TextBox ID="txtStart" runat="server">珠海</asp:TextBox>
<asp:Label ID="Label2" runat="server" Text="终点站:"></asp:Label>
<asp:TextBox ID="txtEnd" runat="server">广州</asp:TextBox>
<asp:LinkButton ID="lkbFind" runat="server" OnClick="lkbFind_Click"><img
border="0" src="img/go.gif">查 询</img></asp:LinkButton>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="None">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="Number" HeaderText="编 号" />
<asp:BoundField DataField="BeginStation" HeaderText="出发站" />
<asp:BoundField DataField="EndStation" HeaderText="终点站" />
<asp:BoundField DataField="beginTime" DataFormatString="{0:yyyy-MM-dd hh:ss}" HeaderText="出发时间" />
<asp:BoundField DataField="endTime" DataFormatString="{0:yyyy-MM-dd hh:ss}" HeaderText="结束时间" />
<asp:BoundField DataField="Price" DataFormatString="{0:F2}" HeaderText="价格" />
</Columns>
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
数据正在加载中....
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" Interval="3000" ontick="Timer1_Tick">
</asp:Timer>
</form>
</body>
希望能帮到你
如果说asp.net实现winform的无刷新,那可以用 microsoft Ajax
http://msdn.microsoft.com/zh-cn/library/bb398874.aspx
很容易的,根本不是去编写javascript实现无刷新