0
私はBoundFieldsとTemplatedFieldsでaspグリッドビューを使用しています。aspネットグリッドビューテキストでソートされたフィールドをソート
<asp:GridView ID="RepairGrid" runat="server" CssClass="subitem w100p"
AutoGenerateColumns="False"
OnRowCommand="RepairGrid_SelectedIndexChanged" OnRowDataBound="RepairGrid_RowDataBound"
AllowSorting="True" OnSorting="SortGrid">
<RowStyle CssClass="itemRowStyle"/>
<AlternatingRowStyle CssClass="alternatingItemRowStyle"/>
<HeaderStyle CssClass="headerRowStyle"/>
<Columns>
<asp:TemplateField HeaderText="PDF" ItemStyle-CssClass="itemFieldStyle"
meta:resourcekey="ColumnPDF" HeaderStyle-CssClass="headerFieldStyle">
<ItemTemplate>
<asp:ImageButton ID="btnExportPDF" runat="server" CommandArgument='<%# Eval("RepairId") %>'
CommandName="ExportPDF" ImageUrl='<%# "~/App_Themes/" + Page.Theme + "/icons/16/icon_pdf.png" %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RepairId" SortExpression="RepairId" ItemStyle-CssClass="itemFieldStyle"
meta:resourcekey="ColumnRepairId" HeaderStyle-CssClass="headerFieldStyle" >
<ItemTemplate>
<asp:LinkButton ID="lnkRepairId" CommandArgument='<%# Eval("RepairId") %>' CommandName="Redirect"
runat="server" Text='<%# Eval("RepairId") %>'/>
<asp:Label ID="lblRepairId" runat="server" Text='<%# Eval("RepairId") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProblemCategory" SortExpression="InternalDescription" ItemStyle-CssClass="itemFieldStyle"
meta:resourcekey="repairItemText" HeaderStyle-CssClass="headerFieldStyle">
<ItemTemplate>
<asp:LinkButton ID="lnkProblemCategory" CommandArgument='<%# Eval("RepairId") %>' CommandName="Redirect"
runat="server"/>
<asp:Label ID="lblProblemCategory" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CreateDate" HeaderText="Status" SortExpression="CreateDate" ItemStyle-CssClass="itemFieldStyle"
meta:resourcekey="ColumnCreateDate" HeaderStyle-CssClass="headerFieldStyle"/>
<asp:BoundField DataField="CreateUser" HeaderText="Status" SortExpression="CreateUser" ItemStyle-CssClass="itemFieldStyle"
meta:resourcekey="ColumnCreateUser" HeaderStyle-CssClass="headerFieldStyle"/>
<asp:BoundField DataField="ChangeDate" HeaderText="Status" SortExpression="ChangeDate" ItemStyle-CssClass="itemFieldStyle"
meta:resourcekey="ColumnChangeDate" HeaderStyle-CssClass="headerFieldStyle"/>
<asp:BoundField DataField="ChangeUser" HeaderText="Status" SortExpression="ChangeUser" ItemStyle-CssClass="itemFieldStyle"
meta:resourcekey="ColumnChangeUser" HeaderStyle-CssClass="headerFieldStyle"/>
</Columns>
</asp:GridView>
私が正しくBoundfieldsとRepairId template宣言フィールドを並べ替えるために管理しているが、私のTemplatedField ProblemCategoryは、データソース内のテキストを持っていないとGrid_SelectedIndexChangedでこの
foreach (RepairDataSet.tms_v_Repair_RepairItemRow row in tblCategories)
{
RepairDataSet.tms_RepairItemDataTable repItemTbl = new RepairDataSet.tms_RepairItemDataTable();
repItemTbl = repairBo.GetRepairItem(row.RepairItemId);
if (repItemTbl.Count > 0)
{
lnkProblemCategory.Text += "<br />" + repItemTbl[0].TextKey;
}
else
{
lnkProblemCategory.Text += "<br />";
}
}
のように記入されますので、私が持っていますソートイベントのargsのために特殊なケースを行いました。私は、データソースを定義する必要があります。
TemplatedFieldをテキストで並べ替える可能性はありますか?その値はDBで並べ替えることはできませんか?
こんにちは、私はあなたのソリューション2がベストだと思いますが、私はないですこのFilterExpressionクラスの内容を確認してください。あなたは説明できますか? –
これはオプションです。サーバ側からの結果をフィルタリングする条件です。 –