使用Input控件完成站内搜索功能
不知道是我傻还是脑子不转个,当别人问我页面传值的方式的时候我能说出来一大堆,也知道怎么使用(用服务端控件的时候)
但一直以来我都不知道怎么使用input传值,今天晚上没啥事,试了一交,突然想起来一个很重要的东西,那就是input的name属性,我咋就把你忘了呀!
例如:
<input type="text" name="txtWords"/>
<input type="submit" value="搜索"/>
哎杯具啊~~ 我不知道有多少人和我一样,把这些东西忘掉了,一直都不知道怎么用客户端控件开发asp.net 因为已经习惯了服务端控件给我们带来的方便。
然后通过form表单提交:Method="post" 提交方式. action="Default.aspx" 提交到哪里.
然后在Default.aspx的页面中使用 Request.Form["txtWords"]; 来获取。
别问为什么是txtWords,如果是这样,那我上面就白废话了。。
来个完整的点的代码吧:
<form id="form1" method="post" action="ShowList.aspx">
<div class="column">
请输入搜索内容:
<input id="txtWords" name="txtWords" type="text" /><input id="btnSearch" type="submit"
value="搜索" /></div>
<div class="column">
<ul>
<asp:ListView ID="objListView" runat="server">
<ItemTemplate>
<li><span><%#Eval("id") %></span>
<span><%#Eval("saleName") %></span>
<span><%#Eval("price") %></span>
<span><%#Eval("count") %></span>
<span><%#Eval("amount") %></span>
<span><%#Eval("InDate") %></span></li>
</ItemTemplate>
</asp:ListView>
</ul>
</div>
</form>
</body>
在这个过程中我发现一个挺有意思的东西,以前一直都没发现,就是ListView在没有runat="server"的时候还可以使用,编译不会报错。GridView就不行,像TextBox ,Button等控件都不行。
也许你可能会说我吃饱了没事干,撑着了写这个东西,因为我"讨厌"ViewState,它生成的字符串太让人纠结了. 没有还不习惯,有吧看着还闹心,只好用传统的Html来写了,哈哈。
接收表单数据的页面后台代码:
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string Words = Request.Form["txtWords"];
objListView.DataSource = DAL.GetSearch(Words);
objListView.DataBind();
}
}
}
这样就OK了,其实只要我们拿到表提交过来的值,后面该怎么开发就怎么开发,和开发WebForm一样(本来就是WebForm嘛。。。)
可偏偏一直以来都转不过来这个弯……
希望看过这篇文章的同学能够和我一样恍然大悟。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?