2009-02-26 30 views
1

我正在嘗試過濾已綁定到模板的Obout Grid中的列。Obout Grid過濾帶有由模板填充的文本的列

背景

列的DataField是一個簡單的外鍵ID到包含哪些特定對象(如名稱,資產標籤,序列號,附加信息的本質規定一個History表。等等)如果用戶要改變對象的特定狀態(例如附加信息),則新記錄將被添加到History表中,並且該新記錄是前述外鍵引用的內容。

在對列進行數據綁定期間,我將最近的歷史狀態與之前的歷史狀態進行比較,並返回已更改內容的英文描述(例如「此設備的附加信息字段已被修改」),以便它可以在每一行中顯示爲文本。

的問題

網格本身似乎只篩選的客戶端,這是原來的數據綁定的部分數據(在這種情況下,只需將外鍵ID的歷史記錄)。我能夠按照這個數字進行過濾,但它並沒有真正顯示在列視圖中,因爲它已被英文描述所取代。

電網標記

<cc1:Grid ID="grdHistory" runat="server" AutoGenerateColumns="False" DataSourceID="dsHistory" AllowFiltering="true"> 
    <Columns> 
     <!-- other columns snipped --> 
     <cc1:Column DataField="DeviceHistoryID" HeaderText="Event description" Width="450" Wrap="true" 
      Index="3"> 
      <TemplateSettings TemplateId="tplEventDescription" /> 
     </cc1:Column> 
    </Columns> 
    <Templates> 
     <cc1:GridTemplate ID="tplEventDescription" runat="server"> 
      <Template> 
       <%# FormatEventDescription(Container.DataItem) %> 
      </Template> 
     </cc1:GridTemplate> 
    </Templates> 
</cc1:Grid> 

FormatEventDescription(Hashtable Records)是返回的,我希望篩選的更改對象的狀態英文版本的功能。

問題

有沒有辦法通過在列的英文說明進行過濾?在這一點上,任何見解(設計缺陷等)都是受歡迎的。我已經試過篩選他們所有的文件,甚至試圖聯繫他們對這個問題的支持,但還沒有收到回覆。

回答

0

我不太瞭解Obout的第三方控件,但似乎是從.net GridView控件分類的。所以你可能會再次提出這個問題,但是使用gridview來代替Obout這個詞,因爲顯然沒有多少人使用這個特定的控制。

在簡要掃描網格事件後,我想你可能會嘗試使用RowDataBound事件來完成必要的轉換。

另外,您也許可以使用datasourceSelected事件來轉換數據。

如果您能夠將數據更早地轉換爲最終可讀狀態,則可以在發生的事件鏈中更早地對其進行過濾。

+0

這個問題不再相關,因爲我redid整個頁面,但我會給你的賞金,因爲沒有人甚至嘗試過。 – 2009-03-12 21:09:48

相關問題