【问题标题】:Sorting drop down list and label inside one item template在一项模板内对下拉列表和标签进行排序
【发布时间】:2013-08-24 01:09:03
【问题描述】:

我有需要修改的项目。我需要对表中的列进行排序。问题是该列包含标签或下拉列表,具体取决于我无法访问的外部数据。

<asp:TemplateField HeaderText="System" >
<ItemTemplate>
<asp:Label ID="LabelSystem" runat="server" Text="Failure" />
<asp:DropDownList ID="DropDownListSystem" runat="server" DataTextField="name" />
</ItemTemplate>
</asp:TemplateField>

有人可以帮忙吗?我需要根据按名称排序的元素类型对元素进行排序。 所以对于经验。 第一标签 第二标签 FirstDropDownList SecondDropDownList 第三下拉列表

为了更好地解释我的想法,我准备了插图:)

排序前的表格:

Before

现在按下“系统”后,它应该以以下两种方式之一对列进行排序:

After

【问题讨论】:

    标签: c# asp.net sorting visual-studio-2008


    【解决方案1】:

    此处与此问题类似 - Sorting dropdown list using Javascript

    $("#id").html($("#id option").sort(function (a, b) { return a.text > b.text; }

    【讨论】:

    • 是的想法没问题,但是如何将它实现到 asp/c# ?以某种方式添加到 onclick 方法?
    • TemplateField 有参数“SortExpression”我可以在那里添加重定向到函数吗?
    【解决方案2】:

    下拉列表的数据源在哪里?如果它是由 SQL Server 查询填充的,您可以在查询本身到达下拉列表之前对其进行排序。

    像这样

    Create proc spGetNames
    as
    Begin
        SELECT *
        FROM NamesList
        ORDER BY Name
    End
    

    你到底想做什么?按特定顺序添加模板字段将从上到下将根据它们在该顺序中的位置从左到右呈现它们。如果您想对表格中的特定列进行排序,那么我提供的解决方案就足够了。也许您想根据满足某个条件的结果对表格进行排序?如果是这样,您可以通过允许这种情况发生的 sql 查询传递一个参数,例如

    Create proc spGetNames
    @Condition nvarchar(50)
    as
    Begin
        SELECT *
        FROM NamesList
        ORDER BY @Condition
    End
    

    【讨论】:

    • 如果您使用存储过程调用查询,但只需删除前三行和最后一行,并且您的 sql 查询可用于直接的 ADO.Net 实现
    • 但这仅指下拉列表,我需要先对表中的列进行排序。
    • 你到底想做什么?按特定顺序添加模板字段将根据它们的位置从上到下从左到右呈现。
    • 您必须首先按我认为是标签文本的内容进行排序,然后按下拉控件中的文本进行排序。 C# 提供了一种排序算法,应该能够通过您的一点即兴发挥来完成此操作:sorting-algorithms.com 快速排序或合并排序可以通过将字符串作为泛型类型传递来解决此问题,然后您只需设置一个标志以确定控件是标签还是下拉列表
    猜你喜欢
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2023-03-21
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多