- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在寻找一些关于能够对我当前的 gridview 进行排序的指导(使用 linq 在后面的代码中填充)。 gridview 驻留在“results.aspx”页面上,并且运行许多不同的查询以根据之前从页面传递的查询字符串参数填充此 gridview。
有人可以看一下我的代码(如果它不是特别“优雅”,请原谅我)并尝试为我指明正确的方向,告诉我如何实现排序吗?
results.aspx 页面只有几个标签来接受查询字符串参数,以及一个名为 viewallGrid 的 GridView 。
results.aspx.cs 页面:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace WebApplication1
{
public partial class Results : System.Web.UI.Page
{
public int _manufacturer { get; set; }
public int _decibel { get; set; }
public int _doortype { get; set; }
public int _glazing { get; set; }
public int _ref { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) //FIRST TIME PAGE IS LOADED
{
hideLabels(decibelLabel, doortypeLabel, glazingLabel, mLabel, refLabel);
Initialdecision();
}
else
{
}
}
protected void Initialdecision()
{
var refResult = Request.QueryString["sf"];
int idResult = Convert.ToInt32(Request.QueryString["test"]);
string prodResult = Request.QueryString["prod"];
if (refResult == "ms")
{
mastersearchQuery();
}
if (refResult == "rs")
{
refsearchQuery();
}
if (refResult == "id")
{
testidsearchQuery(idResult);
}
if (refResult == "p")
{
productsearchQuery(prodResult);
}
}
protected void mastersearchQuery()
{
_manufacturer = Convert.ToInt32(Request.QueryString["m"]);
_decibel = Convert.ToInt32(Request.QueryString["db"]);
_doortype = Convert.ToInt32(Request.QueryString["dt"]);
_glazing = Convert.ToInt32(Request.QueryString["gl"]);
totalLabel.Text = Request.QueryString["total"];
decibelresultLabel.Text = _decibel.ToString();
doortyperesultLabel.Text = _doortype.ToString();
glazingresultLabel.Text = _glazing.ToString();
manufacturerresultLabel.Text = _manufacturer.ToString();
populatemanufacturerLabel();
populatedecibelLabel();
populatedoortypeLabel();
populateglazingLabel();
testdatanewEntities _result = new testdatanewEntities();
var resultQuery = (from t in _result.View3
where (t.dbRating >= _decibel && t.AllID == 1) &&
(t.doortypeID == _doortype || t.AllID == _doortype) &&
(t.GlazingID == _glazing || t.AllID == _glazing) &&
(t.ManufactureID == _manufacturer || t.AllID == _manufacturer)
orderby t.dbRating descending
select new { t.TestID, t.Core, t.Head, t.Threshold, t.MeetingStiles, t.GlazingsType, t.dbRating, t.Pic, t.PDF });
viewallGrid.DataSource = resultQuery;
viewallGrid.DataBind();
viewallGrid.UseAccessibleHeader = true;
viewallGrid.HeaderRow.TableSection = TableRowSection.TableHeader;
TableCellCollection cells = viewallGrid.HeaderRow.Cells;
//ID
cells[0].Attributes.Add("data-class", "expand");
//CORE
//HEAD
cells[2].Attributes.Add("data-hide", "phone,tablet");
//THRESHOLD
cells[3].Attributes.Add("data-hide", "phone,tablet");
//MEETING
cells[4].Attributes.Add("data-hide", "phone,tablet");
//GLAZING
cells[5].Attributes.Add("data-hide", "phone,tablet");
//dB
//SYSTEM PIC
cells[7].Attributes.Add("data-hide", "phone,tablet");
//PDF
cells[8].Attributes.Add("data-hide", "phone,tablet");
}
protected void productsearchQuery(string a)
{
refLabel.Text = "You have searched for test data including the product: NOR" + a.ToString();
refLabel.Visible = true;
testdatanewEntities _productquery = new testdatanewEntities();
var prodQuery = (from p in _productquery.View3
where p.Spare3.Contains(a)
orderby p.dbRating descending
select new { p.TestID, p.Core, p.Head, p.Threshold, p.MeetingStiles, p.GlazingsType, p.dbRating, p.Pic, p.PDF });
if (prodQuery.Count() > 0)
{
viewallGrid.DataSource = prodQuery;
viewallGrid.DataBind();
viewallGrid.UseAccessibleHeader = true;
viewallGrid.HeaderRow.TableSection = TableRowSection.TableHeader;
TableCellCollection cells = viewallGrid.HeaderRow.Cells;
//ID
cells[0].Attributes.Add("data-class", "expand");
//CORE
//HEAD
cells[2].Attributes.Add("data-hide", "phone,tablet");
//THRESHOLD
cells[3].Attributes.Add("data-hide", "phone,tablet");
//MEETING
cells[4].Attributes.Add("data-hide", "phone,tablet");
//GLAZING
cells[5].Attributes.Add("data-hide", "phone,tablet");
//dB
//SYSTEM PIC
cells[7].Attributes.Add("data-hide", "phone,tablet");
//PDF
cells[8].Attributes.Add("data-hide", "phone,tablet");
}
if (prodQuery.Count() == 0)
{
errorLabel.Text = "The Test ID " + a + " can not be found, please check the ID number and try again";
errorLabel.Visible = true;
}
}
protected void refsearchQuery()
{
var reftypeResult = Convert.ToInt32(Request.QueryString["ref"]);
refLabel.Text = "You have searched for report reference: C/" + reftypeResult.ToString();
refLabel.Visible = true;
testdatanewEntities _result = new testdatanewEntities();
var resultQuery = (from t in _result.View3
where t.testRef == reftypeResult
orderby t.dbRating descending
select new { t.TestID, t.Core, t.Head, t.Threshold, t.MeetingStiles, t.GlazingsType, t.dbRating, t.Pic, t.PDF });
if (resultQuery.Count() > 0)
{
viewallGrid.DataSource = resultQuery;
viewallGrid.DataBind();
viewallGrid.UseAccessibleHeader = true;
viewallGrid.HeaderRow.TableSection = TableRowSection.TableHeader;
TableCellCollection cells = viewallGrid.HeaderRow.Cells;
//ID
cells[0].Attributes.Add("data-class", "expand");
//CORE
//HEAD
cells[2].Attributes.Add("data-hide", "phone,tablet");
//THRESHOLD
cells[3].Attributes.Add("data-hide", "phone,tablet");
//MEETING
cells[4].Attributes.Add("data-hide", "phone,tablet");
//GLAZING
cells[5].Attributes.Add("data-hide", "phone,tablet");
//dB
//SYSTEM PIC
cells[7].Attributes.Add("data-hide", "phone,tablet");
//PDF
cells[8].Attributes.Add("data-hide", "phone,tablet");
}
if (resultQuery.Count() == 0)
{
errorLabel.Text = "The report ref " + reftypeResult + " can not be found, please check the reference and try again";
errorLabel.Visible = true;
}
}
protected void testidsearchQuery(int a)
{
refLabel.Text = "You have searched for the Test ID # " + a.ToString();
refLabel.Visible = true;
testdatanewEntities _result = new testdatanewEntities();
var resultQuery = (from t in _result.View3
where t.TestID == a
orderby t.dbRating descending
select new { t.TestID, t.Core, t.Head, t.Threshold, t.MeetingStiles, t.GlazingsType, t.dbRating, t.Pic, t.PDF });
if (resultQuery.Count() > 0)
{
viewallGrid.DataSource = resultQuery;
viewallGrid.DataBind();
viewallGrid.UseAccessibleHeader = true;
viewallGrid.HeaderRow.TableSection = TableRowSection.TableHeader;
TableCellCollection cells = viewallGrid.HeaderRow.Cells;
//ID
cells[0].Attributes.Add("data-class", "expand");
//CORE
//HEAD
cells[2].Attributes.Add("data-hide", "phone,tablet");
//THRESHOLD
cells[3].Attributes.Add("data-hide", "phone,tablet");
//MEETING
cells[4].Attributes.Add("data-hide", "phone,tablet");
//GLAZING
cells[5].Attributes.Add("data-hide", "phone,tablet");
//dB
//SYSTEM PIC
cells[7].Attributes.Add("data-hide", "phone,tablet");
//PDF
cells[8].Attributes.Add("data-hide", "phone,tablet");
}
if (resultQuery.Count() == 0)
{
errorLabel.Text = "The Test ID " + a + " can not be found, please check the ID number and try again";
errorLabel.Visible = true;
}
}
protected void hideLabels(Label a, Label b, Label c, Label d, Label e)
{
a.Visible = false;
b.Visible = false;
c.Visible = false;
d.Visible = false;
e.Visible = false;
}
protected void populatedecibelLabel()
{
decibelLabel.Visible = true;
testdatanewEntities _decquery = new testdatanewEntities();
var dquery = (from t in _decquery.View3
where t.dbRating == _decibel
select t.dbRating).FirstOrDefault();
if (_decibel == 1)
{
decibelLabel.Text = "All dBRw - ";
}
else
{
decibelLabel.Text = dquery.ToString() + "dBRw - ";
}
}
protected void populatemanufacturerLabel()
{
mLabel.Visible = true;
testdatanewEntities _manuquery = new testdatanewEntities();
var mquery = (from t in _manuquery.View3
where t.ManufactureID == _manufacturer
select t.manufacturerName).FirstOrDefault();
if (_manufacturer == 1)
{
mLabel.Text = "All manufacturers";
}
else
{
mLabel.Text = mquery.ToString();
}
}
protected void populatedoortypeLabel()
{
doortypeLabel.Visible = true;
testdatanewEntities _doorquery = new testdatanewEntities();
var doorquery = (from t in _doorquery.View3
where t.doortypeID == _doortype
select t.doortypeName).FirstOrDefault();
if (_doortype == 1)
{
doortypeLabel.Text = "All door types - ";
}
else
{
doortypeLabel.Text = doorquery.ToString() + " - ";
}
}
protected void populateglazingLabel()
{
glazingLabel.Visible = true;
testdatanewEntities _glazingquery = new testdatanewEntities();
var glazingquery = (from t in _glazingquery.View3
where (t.glazID == _glazing || t.AllID == _glazing)
select t.glazTypeName).FirstOrDefault();
if (_glazing == 1)
{
glazingLabel.Text = "All glazing - ";
}
else
{
glazingLabel.Text = glazingquery.ToString() + " - ";
}
}
//navigate through pages in result grid
protected void ResultGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
viewallGrid.PageIndex = e.NewPageIndex;
Initialdecision();
viewallGrid.UseAccessibleHeader = true;
viewallGrid.HeaderRow.TableSection = TableRowSection.TableHeader;
TableCellCollection cells = viewallGrid.HeaderRow.Cells;
//ID
cells[0].Attributes.Add("data-class", "expand");
//CORE
//HEAD
cells[2].Attributes.Add("data-hide", "phone,tablet,desktop");
//THRESHOLD
cells[3].Attributes.Add("data-hide", "phone,tablet,desktop");
//MEETING
cells[4].Attributes.Add("data-hide", "phone,tablet,desktop");
//GLAZING
cells[5].Attributes.Add("data-hide", "phone,tablet,desktop");
//dB
//SYSTEM PIC
cells[7].Attributes.Add("data-hide", "phone,tablet,desktop");
//PDF
cells[8].Attributes.Add("data-hide", "phone,tablet,desktop");
}
protected void viewallGrid_Sorting(object sender, GridViewSortEventArgs e)
{
}
}
最佳答案
最常见的解决方案是使用 Session
或 ViewState
并管理 GridView
的升序或降序状态,以及列最后排序。
此外,还有一个选项可以将属性关联到 GridView
本身,如果您在同一页面上有多个 GridView
,这将很有用。
查看 GridView sorting: SortDirection always Ascending 的答案有关如何执行此操作的示例。
关于c# - 使用 linq to entities c# 的 gridview_sorting 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997269/
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!