C# 如何将字符串数组从asp.net网站中的搜索文本框传递到';Search.aspx';页
我一直在开发一个asp.NETC#网站,刚刚开始实施搜索。我有一个search.aspx页面,使用全文搜索,代码如下:C# 如何将字符串数组从asp.net网站中的搜索文本框传递到';Search.aspx';页,c#,asp.net,C#,Asp.net,我一直在开发一个asp.NETC#网站,刚刚开始实施搜索。我有一个search.aspx页面,使用全文搜索,代码如下: protected List<string> keywords = new List<string>(); protected void btnSearch_Click(object sender, EventArgs e) { // Turn user input to a list of keywords.
protected List<string> keywords = new List<string>();
protected void btnSearch_Click(object sender, EventArgs e)
{
// Turn user input to a list of keywords.
string[] keywords = tbKeyWords.Text.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
// The basic validation.
if (keywords.Length <= 0)
{
lbAlert.Text = "Please input keyword.";
return;
}
this.keywords = keywords.ToList();
// Do search operation with DataAccess.cs page.
DataAccess dataAccess = new DataAccess();
List<Article> list = dataAccess.Search(this.keywords);
ShowResult(list);
}
受保护列表关键字=新列表();
受保护的无效BTN搜索单击(对象发送者,事件参数e)
{
//将用户输入转换为关键字列表。
string[]keywords=tbKeyWords.Text.Split(新字符串[]{”“},StringSplitOptions.RemoveEmptyEntries);
//基本验证。
如果(keywords.Length您可以将它存储在搜索框控件/母版页/任何内容的会话中,然后从搜索页面的页面加载它(我建议在此之后从会话中删除它)让搜索框重定向到带有查询字符串中参数的搜索页面。然后让搜索页面使用查询字符串或使用按钮单击,具体取决于发生的情况。您的search.aspx
可能包含以下代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && !String.IsNullOrEmpty(Request.QueryString["searchTerm"]))
{
string[] keywords = Request.QueryString["searchTerm"].ToString().Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
RunSearch(keywords);
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
string[] keywords = tbKeyWords.Text.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
RunSearch(keywords);
}
private void RunSearch(string[] keywords)
{
if (keywords.Length <= 0)
{
lbAlert.Text = "Please input keyword.";
return;
}
this.keywords = keywords.ToList();
// Do search operation with DataAccess.cs page.
DataAccess dataAccess = new DataAccess();
List<Article> list = dataAccess.Search(this.keywords);
ShowResult(list);
}
未经请求的意见
您在网站的主表单(带有runat=“server”
的表单)中说明了这一点。我个人的建议是将您的搜索框移到该表单之外,如:
<form action="javascript:searchSite()">
<input type="text" id="searchInput" />
</form>
为什么?如果它们出现在您的登录页面上,并在搜索框中键入并单击“输入”(典型的用户行为),那么搜索将启动吗?还是默认的“提交”按钮将启动并尝试让他们登录,这可能会给他们带来错误?在我看来,这是避免混淆的最简单方法。搜索文本框的格式是否与带有runat=“server”的格式不同
在它上面?不,这就是它的表单inIt取决于你提交表单的方式。它实际上是用javascript重定向的吗?或者它是在你重定向后执行一些代码吗?是的,但是如果这是一个asp:Textbox
ID可能不匹配。你可能需要发布你的代码。如果它是一个服务器控件,你需要使用ddocument.getElementById(“”)
。JavaScript函数中的大小写匹配吗?我最初的帖子都是小写。而且该表单必须在其他主表单之外。谢谢Mike!!!我故意将其放在结束标记之前,愚蠢的我。0。o只是一个简单的问题,这会将文本框放在左下角,因为它不是我其他表单的一部分。我可以使用吗CSS将它向上定位到搜索框应该位于的顶部?
<form action="javascript:searchSite()">
<input type="text" id="searchInput" />
</form>