2013-05-15 42 views
0

我有一個ASP.NET web表單應用程序使用jtable.org jquery插件,基本上它工作正常。jtable(.org)通過web方法填充下拉列表

我唯一的問題是,當我試圖通過列表的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'); 
    }); 

代碼代碼隱藏for 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 }; 
     } 
    } 

問題是,下拉列表保持空白。 在我看來,propper JSON-數據轉移:

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

任何人都能看出問題出在哪裏?

回答

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 }); 
     } 
    }