Webアプリケーションのユーザーのニーズに基づいてgridview列を動的に並べ替えようとしています。C#gridview列順序リセット
セイ例えば、デフォルトの表は...ユーザーが別のテーブルが表示されますが、それは順序CDE Fを持っている必要があります...列ABCDとYZA B.
WXY Z.
を開始
: は <asp:GridView ID="lettertable" ClientIDMode="Static" runat="server" NullDisplayText="" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="A" ReadOnly="false" ItemStyle-CssClass="tlet ssA" />
<asp:BoundField DataField="B" ReadOnly="false" ItemStyle-CssClass="tlet ssB" />
<asp:BoundField DataField="C" ReadOnly="false" ItemStyle-CssClass="tlet ssC" />
<asp:BoundField DataField="D" ReadOnly="false" ItemStyle-CssClass="tlet ssD" />
<asp:BoundField DataField="E" ReadOnly="false" ItemStyle-CssClass="tlet ssE" />
...etc
</Columns>
</asp:GridView>
分離コードは次のようになり条件文(レコードの対同じセット対異なる間、nonstartup対起動を説明するために)のではなく拡張セットが含まれます。私が持っている現在の実装では、以下のとおりです。
if (letchg == 0)
{
for (int i = 1; i < rep; i++)
{
var columnMove = grid.Columns[1];
grid.Columns.RemoveAt(1);
grid.Columns.Insert((26), columnMove);
}
}
if (letchg == 2)
{
for (int i = 1; i < rep; i++)
{
var columnMove = grid.Columns[1];
grid.Columns.RemoveAt(1);
grid.Columns.Insert((26), columnMove);
}
}
if (letchg == -2)
{
for (int i = 1; i < rep; i++)
{
var columnMove = grid.Columns[1];
grid.Columns.RemoveAt(1);
grid.Columns.Insert((26), columnMove);
}
}
}
ABCD ... WXYZから列をCDEF ... YZABに並べ替えると、起動とテーブルの切り替えが異なる条件があります。だから私がDEFG ... ZABCに行きたければ、それは相対的なので、私は1つの列だけを動かします。 BIG PROBLEMは、ユーザがリフレッシュボタンを押す(ポストバックを作成する)と、最後の操作を再送し、全体のオーダーを乱してしまうことです。
並べ替えを実行する前に、毎回ABCD ... WXYZにテーブルの列の順序をリセットすることはできますか?それは相対的な並べ替えではありませんか?それとももっと良い方法がありますか?
なぜすべてのブロックがまったく同じ場合にも 'if'が必要ですか? – t3chb0t