我现在做了一个可以在文本框中输入数据库中的表名就可以中GRIDVIEW中显示相应的数据。
但现在想实现,在页面中的文本框中输入一些字符,然后显示数据库中的相关表,就如有表aaa,bbb,ccc,ddd等
在文本框中输入a就显示表
整体功能是输入一些字符 得到相应的所有表 然后可以显示数据
现在我不知道怎么做 大家给些建议
但现在想实现,在页面中的文本框中输入一些字符,然后显示数据库中的相关表,就如有表aaa,bbb,ccc,ddd等
在文本框中输入a就显示表
整体功能是输入一些字符 得到相应的所有表 然后可以显示数据
现在我不知道怎么做 大家给些建议
对应数据库中的表 并把相关的表显示出来 得用哪些控件 显示相关的表
还有就是写SQL语句实现模糊的语句应该是:%+textbox1.text+%的吧
感觉不知道整体布局 有人能指点下吗 谢谢
这里面有所有的表内容 select * from sysobjects where xtype = 'U'
========================================你是指像google那样写些关键字得到相应的补全功能吗?autocomplete吗?用ajax回传吧。
就是怎么用 还有要添加什么控件怎么的 具体流程说清楚点 谢谢
参考:http://www.cncms.com.cn/ajax/9999.htm
Table Name:<asp:TextBox ID="txtName" runat="server" autocomplete="off" onmouseover="document.getElementById('panNames').style.display='inline'"></asp:TextBox>
<div id="divNames" style="display: none; position: relative;">
<div class="pop" id="panNames" onmouseover="document.getElementById('panNames').style.display='block'"
onmouseout="document.getElementById('panNames').style.display='none'" style="display: block;position: absolute; z-index: 99; left: 45px; top: 0px; background: #fff; border: 1px solid #666666;">
</div>
</div>
</td>
前台对应的JS(ajax)代码: function SearchUser() {
var value = $.trim($("#<%=txtName.ClientID%>").val());
$.ajax({
type: "GET",
url: "/UserAutoCompleter.aspx?name=" + value,
success: function(msg){
if($.trim(msg)!= '' && value != '')
{
$("#panNames").html(msg);
$("#divNames").show();
document.getElementById("panNames").style.display="block";
$(".gac_c").click(function(){
$("#<%=txtName.ClientID%>").val($.trim($(this).html()));
$("#divNames").hide();
});
}
else
$("#divNames").hide();
}
});
}然后呢就是创建js要传的页面 UserAutoCompleter.aspxUserAutoCompleter页面前台:<asp:panel runat="server" id="TableResult" visible="false" ><table cellspacing="0" cellpadding="0" class="gac_m" style="width: 146px">
<tbody >
<asp:repeater id="rptAutoCompleter" runat="server"
onitemdatabound="rptAutoCompleter_ItemDataBound">
<ItemTemplate>
<tr class="gac_a">
<td class="gac_c">
<%# Eval("Username") %>
</td>
</tr>
</ItemTemplate>
</asp:repeater>
</tbody>
</table>
</asp:panel>
后台:得到你匹配的模糊查询出的表名,与repeater数据绑定
protected void Page_Load(object sender, EventArgs e)
{
string keyValue = Request.QueryString["name"];
List<LeaveApp.Business.Table> Tables= Business.Table.GetTableLikeName(keyValue); //
if (Tables.Count > 0)
{
rptAutoCompleter.DataSource = Tables;
rptAutoCompleter.DataBind();
TableResult.Visible = true;
}
}
Ajax 写在Search.aspx 里<head>标签中。另外补充一点,UserAutoCompleter.aspx.cs里还要写一段rptAutoCompleter_ItemDataBound方法:protected void rptAutoCompleter_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// e.Item.("onKeyDown", "SelectRow();");
//e.Item.
}
}
protected object AjaxTextBox1_Search(object sender, HampWebControl.AjaxTextBox.SearchEventArgs e)
{
String connStr = "server=。;database=SS;uid=sa;pwd=123";
String sql = "select name from 室外表名 where name like '%" + AjaxTextBox1.Text + "%'";
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
SqlCommand sd = new SqlCommand(sql, conn);
SqlDataAdapter sa = new SqlDataAdapter(sd);
DataTable dt = new DataTable();
sa.Fill(dt);
return dt; }
}
但是没有返回 我看例子也是这么写的 但是我的就没有还回 这是怎么回事