我试图根据模板字段对网格视图进行排序。 我的gridview基本上有一些数据库场,在后端 我调用rowdatabound函数从其他表中获取数据。
有点像这样......
<asp:Gridview runat="server" ID="testGrid" selectMethod="testGrid_GetData"
AutoGenerateColumns="false" AutoGenerateDeleteButton="true" OnRowDataBound="testGrid_RowDataBound" ItemType="testItem"
DeleteMethod="testGrid_DeleteItem" AutoGenerateEditButton="true" UpdateMethod="testGrid_UpdateItem" DataKeyNames="idx">
<Columns>
<asp:BoundField DataField="Field1" HeaderText="Field1" />
<asp:BoundField DataField="Field2" HeaderText="Field2" />
<asp:TemplateField HeaderText="Field3"></asp:TemplateField>
</Columns>
<asp:GridView>
我从Backend调用GetData,并从rowDataBound调用其他表中的数据, 像这样......
public Iqueryable testGrid_GetData() {
var testIt = db.testItems.orderbyDescending(r => r.Field1);
return testIt;
}
protected void testGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
string f1 = e.Row.Cells[1].Text.ToString();
var item = db.otherItems.Where(it => it.FieldFrom1.Equals(f1)).field3;
e.Row.Cells[4].Text = field3;
}
这可能过于简单化了我现在正在做的事情,但我认为如果有人可以从这里排序,我可以解决我的问题。
所以我的目标是按Field3排序,我没有使用任何数据表或数据源,所有教程都要求我这样做。
我甚至尝试过使用OnSorting功能,但我不知道从哪里开始。 还担心即使我解雇了Onsorting函数,RowdataBound事件也会覆盖该函数。
如果有人可以帮助我,那将非常感激。
同样,代码比这复杂得多,除此之外的所有其他功能都运行良好,所以如果我能在不改变代码结构的情况下做到这一点会很好。
提前致谢!!