0

我有一个使用 jtable.org jquery 插件的 ASP.NET Web 表单应用程序,基本上它工作正常。

我遇到的唯一问题是当我尝试通过 List-Web 方法为下拉菜单提供选项时:

代码 ASP.NET (JTable)

 $img.click(function () {
                            $('#TestList').jtable('openChildTable',
                                $img.closest('tr'),
                                {
                                    title: '',
                                    actions: {
                                        listAction: 'Test.aspx/ListeAuftrag?FahrzeugID=' + fahrzeugData.record.FahrzeugID,
                                        deleteAction: 'Test.aspx/DeleteAuftrag',
                                        updateAction: 'Test.aspx/UpdateAuftrag',
                                        createAction: 'Test.aspx/CreateAuftrag'
                                    },
                                    fields: {
                                        Titel: {
                                            title: 'Titel'
                                        },
                                        FahrzeugID: {
                                            type: 'hidden',
                                            defaultValue: fahrzeugData.record.FahrzeugID
                                        },
                                        MitarbeiterID: {
                                            title: 'Mitarbeiter',
                                            defaultValue: '0',
                                            options: 'Fahrzeugliste.aspx/ListeMitarbeiter'
                                        },
                                        Start: {
                                            title: 'Start',
                                            type: 'date'
                                        },
                                        Ende: {
                                            title: 'Ende',
                                            type: 'date'
                                        },
                                        Bemerkung: {
                                            title: 'Bemerkung',
                                            type: 'textarea'
                                        }
                                    }
                                }, function (data) { //opened handler
                                    data.childTable.jtable('load');
                                });
                        });
                        //Return image to show on the person row
                        return $img;
                    }
                },
                KundeID: {
                    title: 'Kunde',
                    defaultValue: '0',
                    options: 'Test.aspx/ListeKunde'
                }  }
            }
        });

        $('#FahrzeugListe').jtable('load');
    });

Test.aspx/ListeKunde 的代码隐藏代码

[WebMethod(EnableSession = true)]



 public static object ListeKunde()
    {
        try
        {
           Dictionary<string, string> kunden = new Dictionary<string,string>();

            foreach (Kunde kunde in db.Kunde)
            { 
                kunden.Add("'" + kunde.KundeID.ToString() + "'", "'" + kunde.Nachname + ", " + kunde.Vorname + "'");
            }

            return new { Result = "OK", Options = kunden };
        }
        catch (Exception ex)
        {
            return new { Result = "ERROR", Message = ex.Message };
        }
    }

问题是下拉列表仍然为空。在我看来,正确的 JSON-Data 被传输:

{Result:OK, Options:{'3':'Kunde, Dummy', '5':'asdf, assssss', '6':'asdf, asdf'}

谁能看出问题出在哪里?

4

1 回答 1

0

这就是我检索信息下拉列表的方法。不是说这是最好的或唯一的,而是我的方式。

        public JsonResult NumberDropList(int start, int duration)
    {
        try
        {
            Dictionary<int, int> number = new Dictionary<int, int>();
            for (int i = start; i < duration; i++)
            {
                number.Add(i, i);
            }

            var numbers = number.Select(c => new { DisplayText = c.Key, Value = c.Value }).OrderBy(c => c.DisplayText).ToList();

            return Json(new { Result = "OK", Options = numbers });
        }
        catch (Exception ex)
        {
            return Json(new { Result = "ERROR", Message = ex.Message });
        }
    }
于 2013-05-17T20:15:55.017 回答