我想使用输入标签过滤我的表格,例如:“SELECT * FROM tblaccount WHERE accountNo = 'document.getElementById('txtSearch').value'”
这是我的 AccountsViewModel
namespace MyProject.Models
{
public class AccountsViewModel
{
public DataTable Accounts { get; set; }
}
}
选择模型.cs
namespace MyProject.Models
{
public class SelectModel
{
private static SqlConnection GetCn()
{
SqlConnection cn = new SqlConnection(@"MyConnectionString");
return cn;
}
public DataSet GetAccounts()
{
SqlConnection cn = GetCn();
SqlCommand cmd = new SqlCommand("SELECT * FROM tblaccount ORDER BY accountNo ASC", cn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds;
}
}
}
家庭控制器.cs
namespace MyProject.Controllers
{
public class HomeController : Controller
{
public ActionResult Index(MyProject.Models.SelectModel selectmodel)
{
AccountViewModel vm = new AccountViewModel();
DataSet ds = selectmodel.GetAccounts();
vm.Accounts = ds.Tables[0];
return View(vm);
}
}
}
索引.chtml
@model MyProject.Models.AccountsViewModel
<label for="txtSearch">Search: </label>
<input type="text" class="form-control" id="txtSearch">
<button class="btn btn-default" type="submit" id="btnSearch">Search</button>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th">Account Number</th>
<th">Transaction Date</th>
</tr>
</thead>
<tbody>
@foreach (System.Data.DataRow dr in Model.Accounts.Rows)
{
<tr>
<td>@dr["Id"].ToString()</td>
<td>@dr["accountNo"].ToString()</td>
<td>@dr["dateTrans"].ToString()</td>
</tr>}
</tbody>
</table>
主要我们有两种方法可以得到这个输出
方式一:使用表单标签——最简单
第一步,将搜索框放在表单标签内,并提供文本框的名称,如下所示:
@model MyProject.Models.AccountsViewModel
@using (Html.BeginForm("Index", "Home", FormMethod.Get))
{
<label for="txtSearch">Search: </label>
<input type="text" class="form-control" id="txtSearch" name="txtSearchterm">
}
<table class="table">
<thead>
<tr>
<th>ID</th>
<th">Account Number</th>
<th">Transaction Date</th>
</tr>
</thead>
<tbody>
@foreach (System.Data.DataRow dr in Model.Accounts.Rows)
{
<tr>
<td>@dr["Id"].ToString()</td>
<td>@dr["accountNo"].ToString()</td>
<td>@dr["dateTrans"].ToString()</td>
</tr>}
</tbody>
</table>
控制器代码:
public ActionResult Index(MyProject.Models.SelectModel selectmodel,string txtSearchterm) //when you click submit button here you will get the value
{
AccountViewModel vm = new AccountViewModel();
//updated
DataSet ds = selectmodel.GetAccounts(txtSearchterm);
vm.Accounts = ds.Tables[0];
return View(vm);
}
选择 Model.cs:
namespace MyProject.Models
{
public class SelectModel
{
private static SqlConnection GetCn()
{
SqlConnection cn = new SqlConnection(@"MyConnectionString");
return cn;
}
//updated
public DataSet GetAccounts(string txtSearchterm)
{
SqlConnection cn = GetCn();
string sqlquery = "";
if(txtsearchterm != null)
{
sqlquery ="SELECT * FROM tblaccount WHERE accountNo =
'"+txtSearchterm+"'ORDER BY accountNo ASC""
}
else
{
sqlquery ="SELECT * FROM tblaccount ORDER BY accountNo ASC""
}
SqlCommand cmd = new SqlCommand(sqlquery , cn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds;
}
}
}
Msdn: 向学生索引页添加搜索框
方式2:使用jquery
由于有很多好文章可供参考,我不想再重复了。这是这些文章的链接。
使用 jQuery 和部分视图过滤 ASP.NET MVC 中的数据
希望以上信息有用
谢谢
卡尔蒂克
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句