2013-08-21 18 views
0

我有項目需要修改。我需要對錶格中的列進行排序。問題是該列包含標籤或下拉列表,取決於我沒有acces的外部數據。排序下拉列表和標籤內的一個項目模板

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

有人可以幫忙嗎?我需要根據按名稱排序的元素類型對元素進行排序。 因此對於exp。 FirstLabel SecondLabel FirstDropDownList SecondDropDownList ThirdDropDownList

爲了更好地解釋什麼是對我心目中,我準備的插圖:)

表排序前:

Before

按下後現在「系統「它應該以這兩種方式之一對列進行分類:

After

回答

0

這個問題這裏差不多 - Sorting dropdown list using Javascript

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

+0

是的想法是好的,但如何實現它到asp/c#? 以某種方式添加到 onclick方法? – kendzi

+0

TemplateField有參數「SortExpression」我可以添加重定向功能? – kendzi

0

哪裏數據源爲您下拉列表?如果正在使用SQL Server Query填充它,則可以在查詢本身到達下拉列表之前對其進行簡單排序。

像這樣

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 
+0

這是如果您使用存儲過程調用查詢,但只是刪除前三行和最後一行,並且您有用於直接轉發ADO.Net實現的sql查詢 –

+0

但這隻涉及下拉列表,而我首先需要對錶中的列進行排序。 – kendzi

+0

你到底在做什麼?按照特定順序添加模板字段將從上到下根據它們按順序從左到右進行渲染。 –