2012-06-27 132 views
0

我正在使用jTable(www.jTable.org)在ASP.NET中使用簡單的網格。這是一個包含'居民'列表的頁面,其中有一個名爲'FacilityFrom'的字段從數據庫中的FACILITY表填充。在'居民'jTable中,我有一個使用'選項'屬性並從'Facility'SQL表中拉取的字段。我只想要一個下拉列表,其中第一個&默認值是'(NONE)',當你去添加一條新記錄時。默認值在jTable'選項'下拉?

我做了一些MSSQL魔術和創建代表默認值的記錄(該領域在數據庫中是字面上「(無)」。填充下降然後當下來,我做

select FacilityID,Name from FACILITY where Name = '(NONE)' 
UNION 
select FacilityID,Name from FACILITY where Name <> '(NONE)' 

我意識到它的醜陋(我將必要的唯一約束條件設置爲不透氣),但查詢按預期工作,並將'(NONE)'選項放在頂部;但無論出於何種原因,jTable都會自行進行排序,把它放在底部!即使我將上面的select語句顛倒過來,它仍然在底部?即使我在WebMethod中放置了一個叫做GetFacilityOptions的斷點 - 很明顯,結果就是我想要的結果 - (NONE)總是在列表中的索引0處t似乎在jQuery的約束力正在做出改變?

無論如何,我發現jTable文檔的defaultValue屬性,並認爲它會解決我的問題,但它仍然沒有影響?該HTML低於:

       FacilityFromID: { 
          title: 'Facility', 
          options: '/Residents.aspx/GetFacilityOptions', 
          defaultValue: '(NONE)' 
         }, 

代碼隱藏是:

 [WebMethod(EnableSession = true)] 
     public static object GetFacilityOptions() 
     { 
      try 
      { 
       var facilities = BusinessObjects.DataAcesss.GetAllFacilities().Select(c => new { DisplayText = c.Name, Value = c.FacilityID }); 
       //BREAKPOINT SAYS '(NONE)' IS AT INDEX 0 HERE!! 
       return new { Result = "OK", Options = facilities }; 
      } 
      catch (Exception ex) 
      { 
       return new { Result = "ERROR", Message = ex.Message }; 
      } 
     } 

任何人有任何意見/建議嗎?非常感謝!

回答

1
, min_id: { 
title: field name, 
    options: the options function, 
defaultValue: $('#<% = ddlMin.ClientID %>').val() // where ddlMin.ClientID the value required 
}