如何将LINQ查询绑定到gridview的行
本文关键字:gridview 的行 绑定 查询 LINQ | 更新日期: 2023-09-27 17:54:19
我需要将LINQ查询绑定到gridview的行。我试着创建一个像expedia中的矩阵一样的表,在不同的行上有不间断,1站和2站。我不太确定如何将查询绑定到gridview行。谢谢你的帮助。
var imgquery = from f in XElement.Load(MapPath("flightdata3.xml")).Elements("flight")
orderby Convert.ToInt32(f.Element("price").Value)
select new
{
ImagePath = (string)f.Element("airlineimageurl").Value
};
//query for gvMatrix where numberofstops=0
var numstops0query = from f in XElement.Load(MapPath("flightdata3.xml")).Elements("flight")
where Convert.ToInt32(f.Element("numberofstops").Value) == 0
orderby Convert.ToInt32(f.Element("price").Value)
select new
{
Price = "$" + (Int32)f.Element("price"),
ImagePath = (string)f.Element("airlineimageurl").Value
};
<asp:GridView ID="gvMatrix" runat="server">
</asp:GridView>
我相信你需要从GridView RowDataBound事件调用辅助查询,然后手动填充辅助值字段:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx然而,似乎你可以得到你正在寻找的SQL连接或子选择。如果您使用的是SQL数据源,我会尝试使用SQL,看看是否可以在单个Select语句中获取数据,然后回过头来看看是否可以将SQL查询转换为适当的LINQ——或者我可以通过存储过程调用它。但是,如果您致力于LINQ,或者如果连接或子选择不起作用,那么RowDataBound是您最好的选择。
我不确定,网格视图会给你所需的功能,因为数据集将绑定到整个网格。您可以在运行时创建HTMl表结构,并且在您创建的每一行上都可以控制它来绑定您拥有的任何linq数据。希望能有所帮助:)
placeHolder.Controls.Clear(); //asp:placeholder holds the table structure.
Table table = new Table();
table.ID = "table";
placeHolder.Controls.Add(table); //adding to place holder
TableRow row = new TableRow();
row.ID ="rowID";
table.Rows.Add(row); //creating first row for first linq dataset
var nonstop0query = from x in obj select new {x.ID, x.Name, x.Age}; //first linq dataset.
//Creating cells for the data returned by the nonstop0query
TableCell cell = new TableCell();
cell.ID = "cell1";
row.Cells.Add(cell);
cell.Text = nonstop0Query[0];
cell = new TableCell();
cell.ID = "cell2";
row.Cells.Add(cell);
cell.Text = nonstop0Query[1];
cell.ID = "cell3";
row.Cells.Add(cell);
cell.Text = nonstop0Query[2];
//Same way can be done for more dataset to bind to row.