У меня есть этот код aspx
, и я настолько смущен для кода asmx.cs
.Каскадирование DropDownList с сохраненной процедурой
ASPX:
<div class="col-md-6">
<asp:DropDownList ID="ddlMake" runat="server" CssClass="form-control"></asp:DropDownList>
<ajaxToolkit:CascadingDropDown ID="cdlMake" TargetControlID="ddlMake" PromptText="Select Make" PromptValue="" ServicePath="CascadingDropdown1.cs.asmx" ServiceMethod="GetMakes" runat="server" Category="MakeId" LoadingText="Loading Make..." />
</div>
<div class="col-md-6">
<asp:DropDownList ID="ddlModel" runat="server" CssClass="form-control"></asp:DropDownList>
<ajaxToolkit:CascadingDropDown ID="cdlModel" TargetControlID="ddlModel" PromptText="Select Model" PromptValue="" ServicePath="CascadingDropdown1.cs.asmx" ServiceMethod="GetModels" runat="server" Category="ModelId" ParentControlID="ddlMake" LoadingText="Loading Model..." />
</div>
и у меня есть Stored Procedure
называется Search_MAKE
и Search_MODEL
и модель SP необходим параметр.
Может кто-нибудь помочь мне построить код asmx.cs
.
UPDATE:
[ScriptService]
public class CascadingDropdown1 : System.Web.Services.WebService
{
[WebMethod]
public CascadingDropDownNameValue[] GetMakes(string knownCategoryValues)
{
string query = "exec spIBCInventorySearch_MAKE @IDCustomer = 253433";
List<CascadingDropDownNameValue> Makes = GetData(query);
return Makes.ToArray();
}
[WebMethod]
public CascadingDropDownNameValue[] GetModels(string knownCategoryValues)
{
string make = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues)["MakeId"];
string query = string.Format("exec spIBCInventorySearch_MODEL @VehicleMake = {0}, @IDCustomer = 253433 ", make);
List<CascadingDropDownNameValue> Models = GetData(query);
return Models.ToArray();
}
private List<CascadingDropDownNameValue> GetData(string query)
{
string conString = ConfigurationManager.ConnectionStrings["UID=pal;Password=123;DATABASE=ATDBSQL;"].ConnectionString;
SqlCommand cmd = new SqlCommand(query);
List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
using (SqlConnection con = new SqlConnection(conString))
{
con.Open();
cmd.Connection = con;
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
values.Add(new CascadingDropDownNameValue
{
name = reader[0].ToString(),
value = reader[1].ToString()
});
}
reader.Close();
con.Close();
return values;
}
}
}
}
я только что закончил делая asmx
код, но он сломается в conString
части. может кто-нибудь помочь мне отладить эту проблему?
где вы получаете справку 'ApiConnectionString'? @qamar –
Вам необходимо установить строку подключения в разделе раздела в файле web.config. Замените мои значения на свои. И в вашем коде вы можете получить строку соединения с помощью установленного вами ключа, в нашем примере это «YouConnectionString». Надеюсь, это имеет смысл. –
qamar
спасибо, сэр. возникает больше проблем с после того, как вы исправили часть String соединения. он сломается также в 'values.Add (новый CascadingDropDownNameValue { имя = читатель [0] .ToString(), значение = читателя [1] .ToString() });' –