ASP.NET MVC + LINQ TO SQL 查询 又有问题了,大家帮帮忙啊!

kai991118 2010-08-26 09:25:33
问题1:页面传值的问题

<%using (Html.BeginForm("Index", "QTable",FormMethod.Get)) %>
<%{ %>
<table cellpadding="1" cellspacing="1" class="tab_query">
<tr>
<th>
标题:
</th>
<td>
<input type ="text" name ="title" value="<%=Request.QueryString["title"]%>" />
</td>
<th>
题目内容:
</th>
<td>
<textarea id="text" cols="20" name="content" rows="2"><%=Request.QueryString["content"]%></textarea>
</td>
</tr>
<tr>
<td colspan="4" class="btn_normal" style="text-align: center;">
<input id="btn_Query" type="submit" value="查询" class="btn_normal" />
</td>
</tr>
</table>

这种传值方式是在地址栏显示出来传递值,这种方式不好,能不能不通过地址栏传递值,有其他什么方法吗?我一个朋友建议我用jQuery来做,但是我不会jQuery,如果用jQuery怎么做呢,希望给出代码,谢谢

问题2:查询
我的查询的代码:

public ActionResult Index(int? id)
{
using (var db = new JSQuestionnaireDataContext())
{
PagedList<QTable> orders = db.QTable.ToPagedList(id ?? 1, 5);
if (!string.IsNullOrEmpty(Request.QueryString["title"]))//条件1
{
orders = (from c in db.QTable where c.Title.Contains(Request.QueryString["title"]) select c).ToPagedList(id ?? 1, 5);
}
if (!string.IsNullOrEmpty(Request.QueryString["content"]))//条件2
{
orders = (from c in db.QTable where c.Description.Contains(Request.QueryString["content"]) select c).ToPagedList(id ?? 1, 5);
}
if (Request.IsAjaxRequest())
return PartialView("UCJQueryQTableList", orders);
return View(orders);
}
}

我用的是mvcpager分页技术,上述代码如果条件1和条件2都不为空的话,执行查询后的数据只有满足条件2的数据,怎么才能实现条件1和条件2都不为空时,查询出来的数据同时满足两个条件呢?

问题解决马上给分,希望会的人帮帮忙,谢谢!
...全文
175 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kai991118 2010-08-26
  • 打赏
  • 举报
回复
没有人能帮我吗,实现多条件查询,结合MVCPAGER
zouchun_donet 2010-08-26
  • 打赏
  • 举报
回复

//用Linq 实现动态多条件查询 Code private void ViewBinding() { Expressionbool>> expr = n => GetCondition(n); var xQuery = DCDataContext.TestTables.Where(expr.Compile()); this.dataGridView1.DataSource = xQuery.ToList(); } private bool GetCondition(TestTable tb) { bool boolResult = true; if (txtUserNumber.Text.Trim() != string.Empty) { boolResult &= tb.UserNumber == int.Parse(txtUserNumber.Text.Trim()); } if (txtName.Text.Trim() != string.Empty) { boolResult &= tb.Name == txtName.Text.Trim(); } if (txtClassName.Text.Trim() != string.Empty) { boolResult &= tb.ClassName == txtClassName.Text.Trim(); } return boolResult; } private void button1_Click(object sender, EventArgs e) { ViewBinding(); }

参考一下
kai991118 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zouchun_donet 的回复:]
问题二:
这样试试!
PagedList<QTable> orders = db.QTable.ToPagedList(id ?? 1, 5);
if (!string.IsNullOrEmpty(Request.QueryString["title"]))//条件1
{
orders = orders .And(p => p.Title.Contains(Request……
[/Quote]
这种方法不行,显示:
错误 2 无法将 lambda 表达式 转换为类型“JSQuestion.Models.QTable”,因为它不是委托类型 D:\_work\JSQuestion\JSQuestion\Controllers\QTableController.cs 84 45 JSQuestion
zouchun_donet 2010-08-26
  • 打赏
  • 举报
回复
问题一的话,其实我那天给你的那个例子,都是用的Jquery处理的,你没用过,所以一时半会讲不好,还是得你自己慢慢钻, $.getJSON(....); $.post(...); $.get(...);都很好用的.
claymore1114 2010-08-26
  • 打赏
  • 举报
回复
mvc 前台页面接收值 一般是Model,ViewData等,jquery中可以获取json,str,html等。
给后台 一般post、get.



var BaseData=db.QTable;
PagedList<QTable> orders=null;
var title=Request.QueryString["title"];
var content=Request.QueryString["content"];
if (!string.IsNullOrEmpty(title)&&string.IsNullOrEmpty(content))
orders = (from c in BaseData where c.Title.Contains(title) select c).ToPagedList(id ?? 1, 5);
else if (!string.IsNullOrEmpty(content)&&string.IsNullOrEmpty(title))
orders = (from c in BaseData where c.Description.Contains(content) select c).ToPagedList(id ?? 1, 5);
else if(!string.IsNullOrEmpty(content)&&!string.IsNullOrEmpty(title))
orders = (from c in BaseData where c.Description.Contains(content) && c.Title.Contains(title) select c).ToPagedList(id ?? 1, 5);
else
orders = BaseData.ToPagedList(id ?? 1, 5);
zouchun_donet 2010-08-26
  • 打赏
  • 举报
回复
问题二:
这样试试!
PagedList<QTable> orders = db.QTable.ToPagedList(id ?? 1, 5);
if (!string.IsNullOrEmpty(Request.QueryString["title"]))//条件1
{
orders = orders .And(p => p.Title.Contains(Request.QueryString["title"]));
}
if (!string.IsNullOrEmpty(Request.QueryString["content"]))//条件2
{
orders = orders .And(p => p.Description.Contains(Request.QueryString["content"]));
}
qwerrewq888 2010-08-26
  • 打赏
  • 举报
回复
我帮你顶一下吧,我也想知道。
kai991118 2010-08-26
  • 打赏
  • 举报
回复
没有人能够帮忙吗?
kai991118 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happy664618843 的回复:]
jquery
$.get("url",{params;参数,date:Date()//缓存},function(datas){
//datas为服务器返回结果
})
个人感觉用MVC来分布 代码过多 有点麻烦 建议直接用分页控件 呵呵..
[/Quote]
能给详细的代码吗?
happy664618843 2010-08-26
  • 打赏
  • 举报
回复
jquery
$.get("url",{params;参数,date:Date()//缓存},function(datas){
//datas为服务器返回结果
})
个人感觉用MVC来分布 代码过多 有点麻烦 建议直接用分页控件 呵呵..
kai991118 2010-08-26
  • 打赏
  • 举报
回复
Linq to sql 实现动态多条件查询 结合mvcpager分页
kai991118 2010-08-26
  • 打赏
  • 举报
回复
来人啊,救命啊

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧