gpt4 book ai didi

c# - 如何动态更改 WPF 中 GridView 列的顺序?

转载 作者:行者123 更新时间:2023-11-30 16:36:34 25 4
gpt4 key购买 nike

我有两个单选按钮。如果单击第一个单选按钮,我希望列的顺序为:

  • Assets 名称
  • Assets
  • 团体
  • 类型名
  • 风险级别

如果单击第二个单选按钮,我希望列的顺序为:

  • 团体
  • Assets 名称
  • Assets
  • 类型名
  • 风险级别

这是我的 XAML 示例:

<asp:GridView ID="dgAssets" runat="server" AutoGenerateColumns="False" AllowPaging="True"
DataKeyNames="ID" AllowSorting="True" OnPageIndexChanging="dgAssets_PageIndexChanging"
Width="100%" OnRowCommand="dgAssets_RowCommand" OnRowDataBound="dgAssets_RowDataBound"
OnSorting="dgAssets_Sorting">
<Columns>

<asp:TemplateField Visible="False">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ID")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="ASSETNAME">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ASSETNAME")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="ASSET">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ASSET")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="GROUPS">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "GROUPS")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="TYPENAME">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "TYPENAME")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="IPRISKLEVEL">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "IPRISKLEVEL")%>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>

最佳答案

与其在设计模式下添加列,不如使用 C# 代码动态添加它们。这将允许您以任何您喜欢的方式订购它们。

动态添加列的代码:

DataTable dt = yourDataTable;
foreach (DataColumn col in dt.Columns)
{
BoundField bfield = new BoundField();
bfield.DataField = col.ColumnName;
bfield.HeaderText = col.ColumnName;
dgAssets.Columns.Add(bfield);
}

关于c# - 如何动态更改 WPF 中 GridView 列的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com