ASP.NETは初めてですが、AJAXを使用してアプリケーションで検索ボックスを作成しています。
例:ユーザーがテキストボックスに「abc」と入力すると、テキストボックスは「abc」で始まるデータベースからデータをフェッチします。
abc
次に、listBoxで始まるすべての文字列を表示したいのですが、データテーブルでデータをフェッチしていて、データはデータテーブルで適切に取得されています。
Datatableからリストボックスを埋める方法は?
これが私のコードスニペットです。
SecrchBox.aspxのコード
onkeyup i am calling this getdata()
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SearchBox.aspx.cs" Inherits="SearchBox" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" language="javascript">
function getdata() {
var TextBox1 = document.getElementById("<%= TextBox1.ClientID %>");
var ltrSearchResults = document.getElementById("<%= ltrSearchResults.ClientID %>");
var str = TextBox1.value;
var xmlhttp;
if (str.length == 0) {
ltrSearchResults.innerHTML = "";
return;
}
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "Newpage.aspx?q=" + str, false);
xmlhttp.send();
ltrSearchResults.innerHTML = xmlhttp.responseText;
return false;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox><br />
<asp:Label runat="server" ID="Label1" ></asp:Label><br />
</div>
</form>
</body>
</html>
Newspage、aspx.csのコード
public partial class Newpage : System.Web.UI.Page
{
public string ConnectionString = "Data Source=ilsql;Initial Catalog=krunal_DB;User ID=krunaldbuser;Password=krunal@2012;";
string[] symbol=new string[2170];
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetData();
}
}
private void GetData()
{
if (Request.QueryString["q"] != null)
{
string Value = Convert.ToString(Request.QueryString["q"]);
StringBuilder str = new StringBuilder();
// string str;
if (Value.Length > 0)
{
SqlConnection cn = new SqlConnection(ConnectionString);
cn.Open();
SqlCommand cmd = new SqlCommand("SELECT DISTINCT Scrip FROM dbo.SearchBoxData where Scrip Like '%" + Value + "%'", cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
cn.Close();
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
str.Append(Convert.ToString(dr["Scrip"]) + "<br>");
}
str = str.Remove(str.Length - 2, 2);
}
Response.Write(str.ToString());
}
else
{
Response.Write("No Result Found");
}
}
}
}
どんな助けでも適用されます!!
前もって感謝します。