2011-01-31 2 views
0

계단식 콤보 박스를 작동 시키려고하는데 [Method error 500]이 표시됩니다. 어떤 아이디어? 온라인으로 검색했습니다. 코드가 작동해야합니다. 미리 도와 주셔서 감사합니다!CascadingDropDown Error

ADDSTORY.ASPX :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="addstory.aspx.cs" Inherits="addstory" %> 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> 

...

<form id="form1" runat="server"> 
<asp:ToolkitScriptManager ID="ScriptManager1" runat="server" /> 

...

<td class="style3"> 
       <asp:DropDownList ID="selectproject" runat="server" Width="225"></asp:DropDownList> 
       <asp:CascadingDropDown ID="ccd1" runat="server" 
       ServicePath="~/dropdown.asmx?company=<%=co_id %>" ServiceMethod="GetProjects" 
       TargetControlID="selectproject" Category="Project" 
       PromptText="Select Project" /> 
       </td> 

      </tr> 

      <tr> 
      <td class="style3"></td> 
      <td width = "150" class="style3">Iteration:</td> 

      <td class="style3"> 
       <asp:DropDownList ID="selectiteration" runat="server" Width="225"></asp:DropDownList> 
       <asp:CascadingDropDown ID="ccd2" runat="server" 
       ServicePath="~/dropdown.asmx?company=<%=co_id %>" ServiceMethod="GetIterations" 
       TargetControlID="selectiteration" Category="Iteration" 
       PromptText="Select Iteration" /> 
       </td> 

      </tr> 

DROPDOWN.ASMX :

using System.Web.Script.Services; 
using AjaxControlToolkit; 
using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Collections.Generic; 
using System.Collections.Specialized; 
using System.Data.SqlClient; 

/// <summary> 
/// Summary description for WebService 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService()] 

public class dropdown : System.Web.Services.WebService 
{ 
private string GetConnectionString() 
{ 
    return System.Configuration.ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString; 
} 

[WebMethod] 

public CascadingDropDownNameValue[] GetProjects(string knownCategoryValues, string category) 
{ 

    string co_id = this.Context.Request.QueryString["company"].ToString(); 

    SqlConnection conn = new SqlConnection(GetConnectionString()); 
    conn.Open(); 
    SqlCommand comm = new SqlCommand("Select ProjectName, ProjectID FROM Project WHERE CompanyID = '" + co_id + "'", conn); 
    SqlDataReader dr = comm.ExecuteReader(); 
    List<CascadingDropDownNameValue> l = new List<CascadingDropDownNameValue>(); 
    while (dr.Read()) 
    { 
     l.Add(new CascadingDropDownNameValue(dr["ProjectName"].ToString(), dr["ProjectID"].ToString())); 
    } 
    conn.Close(); 
    return l.ToArray(); 
} 

[WebMethod] 

public CascadingDropDownNameValue[] GetIterations(string knownCategoryValues, string category) 
{ 
    int ProjectID; 
    StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues); 

    if (!kv.ContainsKey("Project") || !Int32.TryParse(kv["Project"], out ProjectID)) 
    { 
     throw new ArgumentException("Couldn't find project."); 
    }; 

    SqlConnection conn = new SqlConnection(GetConnectionString()); 
    conn.Open(); 
    SqlCommand comm = new SqlCommand("SELECT Select CONVERT(VARCHAR(10), StartDate, 103) + ' - ' + CONVERT(VARCHAR(10), EndDate, 103) AS Iteration, ProjectIterationID FROM Iterations WHERE [email protected]", conn); 

    comm.Parameters.AddWithValue("@ProjectID", ProjectID); 
    SqlDataReader dr = comm.ExecuteReader(); 
    List<CascadingDropDownNameValue> l = new List<CascadingDropDownNameValue>(); 

    while (dr.Read()) 
    { 
     l.Add(new CascadingDropDownNameValue(dr["Iteration"].ToString(), dr["ProjectIterationID"].ToString())); 
    } 
    conn.Close(); 
    return l.ToArray(); 
} 

} 
+0

@ 존 손더스를 사용하여 자사의 서비스 코드의 상단에. – bleepzter

답변

1

당신이 이미 ScriptService로 서비스를 표시했음을 알았지 만, [ScriptMethod] 속성으로 개별 메소드에 플래그를 지정하는 것을 잊었습니다. 당신의 계단식의 서비스 경로 속성은 컨트롤을 드롭 다운에

또한 나는 ~을 걸릴 그냥 네 그가 한 /dropdown.asmx