0

我正在使用 jTable (www.jTable.org) 在 ASP.NET 中处理一个简单的网格。这是一个包含“居民”列表的页面,其中有一个名为“FacilityFrom”的字段是从数据库中的 FACILITY 表中填充的。在“居民”jTable 上,我有一个使用“选项”属性并从“设施”SQL 表中提取的字段。我只想要一个下拉列表,当您添加新记录时,第一个默认值为“(无)”。

我做了一些 MSSQL 魔术并创建了一个表示默认值的记录(它在数据库中的字段字面意思是“(无)”。然后在填充下拉列表时我做

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

我意识到它很丑(我设置了必要的唯一约束以使其密封),但查询按预期工作并将“(NONE)”选项放在顶部;但无论出于何种原因,jTable 都在自己做一些排序魔术并将其放在底部!即使我颠倒了上面的选择语句,它仍然在底部吗?即使我在名为 GetFacilityOptions 的 WebMethod 中放置了一个断点 - 很明显,结果就是我想要的 - (NONE) 总是在列表中的索引 0 处。似乎 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 };
            }
        }

有人有任何想法/建议吗?非常感谢!

4

1 回答 1

1
,  min_id: {
 title: field name,
  options: the options function,
 defaultValue: $('#<% = ddlMin.ClientID %>').val() // where ddlMin.ClientID the value required
}
于 2013-12-22T08:48:45.877 回答