- PR -

ASP.NET(c#):DataGridでTemplateColumnを使うとソートができない

1
投稿者投稿内容
arare
会議室デビュー日: 2003/11/05
投稿数: 13
投稿日時: 2003-11-05 19:45
ASP.NET(c#)ので、DataGridのページング処理と並び替えの連動で一覧を作っています。
DataGridにTemplateColumnを追加してソートを行いたいと思っていますがうまくいきません。
BoundColumnだとうまくいくんですが・・・
今回は、1つのセルを2段に仕切ってデータを2つ出力しているのでTemplateColumnを使っています。
どなたかご存知の方がいらっしゃいましたら御教授下さい。



下記はソースです。
ヘッダ「いいい」のデータでソートしたいと思っています。

(aspxファイル)
<asp:datagrid id="dgrIchiran" runat="server" OnSortCommand="dgrIchiran_sort" AllowSorting="True" PageSize="10" AutoGenerateColumns="False" OnPageIndexChanged="dgrIchiran_paging" AllowPaging="True">
<Columns>
<asp:TemplateColumn SortExpression="dataI">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<HeaderTemplate>
<asp:LinkButton id="btnA" CommandName="sort" Runat="server">あああ</asp:LinkButton>
<HR>
<asp:LinkButton id="btnI" CommandName="sort" Runat="server">いいい</asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<LABEL id="lblA" runat="server">
<%# DataBinder.Eval(Container.DataItem, "[\\"dataA\\"]") %>
</LABEL>
<HR>
<LABEL id="lblI" runat="server">
<%# DataBinder.Eval(Container.DataItem, "[\\"dataI\\"]") %>
</LABEL>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>

(コードビハインドファイル)
//DataGridのソート時の処理
public void dgrIchiran_sort (object sender, DataGridSortCommandEventArgs e)
{
DataTable dt = GetTable();
DataView dv = dt.DefaultView;

//ソート
dv.Sort = e.SortExpression;
//1ページ目を表示
dgrIchiran.CurrentPageIndex = 0;

//バインド
dgrIchiran.DataSource = dv;
dgrIchiran.DataBind();
}
arare
会議室デビュー日: 2003/11/05
投稿数: 13
投稿日時: 2003-11-10 13:06
DataGridで用意されている並べ替え機能では
うまくいきませんでしたので
違う方法で解決させました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)