PDA

View Full Version : بایند نشدن داده ها در cascading drop down list



mehfa27
شنبه 03 خرداد 1393, 22:56 عصر
سلام. من طبق آموزش این سایت (http://www.dotnetfox.com/articles/ajax-cascading-dropdown-example-with-database-in-Asp-Net-1078.aspx)میخوام که دو تا دراپ دان داشته باشم که اولی نوع خودرو و دومی مدل خودرو را نشان بده. من دقیقا طبق آموزش این سایت پیش رفتم ولی مشکل اینجاست که وقتی صفحه را اجرا میکنم توی دراپ دانها هیچ چیزی نشان نمیدهد. تو design view هم تو دراپ دان unbound نوشته شده. من با یک دراپ دان معمولی چک کردم و عمل بایندینگ به درستی عمل میکرد اما مشکل با cascading drop down هست. تو سایتهای خارجی هم سرچ کردم اما به نتیجه ای نرسیدم.حتی یکی نوشته بود که به جای وب سرویس از wcf استفاده کن ولی این کار هم نتیجه ای نداد. (توی تمام آموزشها گفته شده که باید از وب سرویس استفاده بشه.)از script manager هم استفاده کردم اما باز هم هیچی نشان داده نمیشه،در واقع عمل بایندینگ درست انجام نمیشه. دوستان لطفا اگر میدونید که مشکلم از کجاست کمک کنید که واقعا بهش احتیاج دارم. من از vs2012 وajax control toolkit .net4 استفاده کردم. اگه کد برنامه هم لازم شد میذارم.

mRizvandi
یک شنبه 04 خرداد 1393, 00:49 صبح
اون سایتی که شما رفتتید اصلا برای کار دیگه ای اون کد رو پیاده سازی کرده.
اگر شما فقط می خواهید دو تا Dropdownlist رو پر کنید که دومی به اولی وابسته است و نمی خواهید صفحه رفرش بشه، کافی بود کنترلها رو داخل UpdatePanel میذاشتید. بقیه کارها رو خود ASP.NET انجام میده.

mehfa27
یک شنبه 04 خرداد 1393, 14:32 عصر
ولی من میخوام که از همین روش استفاده کنم. کسی میتونه کمک کنه؟

alireza.zahani
یک شنبه 04 خرداد 1393, 15:36 عصر
این سایت رو ببین
در قسمت عضویتش
نام استان و شهر
ببین خوبه کدشو بزارم

salar IT man
یک شنبه 04 خرداد 1393, 16:22 عصر
سلام دوست عزیز .کدتونو بذارین اینجا

mehfa27
دوشنبه 05 خرداد 1393, 12:00 عصر
آقای zahani کدوم سایت؟

mehfa27
چهارشنبه 07 خرداد 1393, 16:28 عصر
سلام. من هنوز نتونستم به نتیجه ای برسم. دوستان لطفا کمک کنید.اینم ک برنامه ام هست:
کد وب سرویس
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

using AjaxControlToolkit;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration;
using System.Data;
using System.Data.SqlClient
[System.Web.Script.Services.ScriptService]
public class Car : System.Web.Services.WebService {

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);

//Web method for bind Make
[WebMethod]
public CascadingDropDownNameValue[] BindMake(string knownCategoryValues, string category)
{
DataSet ds = new DataSet();
conn.Open();
SqlCommand cmd = new SqlCommand("select * from Make", conn);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
adp.Fill(ds);
conn.Close();
List<CascadingDropDownNameValue> MakeDetails = new List<CascadingDropDownNameValue>();
foreach (DataRow DR in ds.Tables[0].Rows)
{
string CARID = DR["CarId"].ToString();
string CARNAME = DR["CarName"].ToString();
MakeDetails.Add(new CascadingDropDownNameValue(CARNAME, CARID));
}
return MakeDetails.ToArray();
}
//Web method for bind Model
[WebMethod]
public CascadingDropDownNameValue[] BindModel(string knownCategoryValues, string category)
{
DataSet ds = new DataSet();
int CarID;
StringDictionary kv = AjaxControlToolkit.CascadingDropDown.ParseKnownCat egoryValuesString(knownCategoryValues);
CarID = Convert.ToInt32(kv["CarName"]);
conn.Open();
SqlCommand cmd = new SqlCommand("select * from Model where CarId=@CarId", conn);
cmd.Parameters.AddWithValue("@CarId", CarID);
cmd.ExecuteNonQuery();
SqlDataAdapter adp = new SqlDataAdapter(cmd);
adp.Fill(ds);
conn.Close();
List<CascadingDropDownNameValue> ModelDetails = new List<CascadingDropDownNameValue>();
foreach (DataRow DR in ds.Tables[0].Rows)
{
string MODELID = DR["ModelId"].ToString();
string MODELNAME = DR["ModelName"].ToString();
ModelDetails.Add(new CascadingDropDownNameValue(MODELNAME, MODELID));
}
return ModelDetails.ToArray();
}


};
اینم کد صفحه <form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div>
<asp:DropDownList ID="ddlMake" runat="server" Width="200px" >
</asp:DropDownList>
<asp:CascadingDropDown ID="ddlMake_CascadingDropDown" runat="server" TargetControlID="ddlMake" Category="Make"
LoadingText="لطفا صبر کنید..." PromptText="انتخاب خودرو"
ServiceMethod="BindMake" ServicePath="~/Car.asmx" >
</asp:CascadingDropDown>

<asp:Label ID="Label1" runat="server" Text="نوع خودرو"></asp:Label>

</div>
<asp:DropDownList ID="ddlModel" runat="server" Width="200px">
</asp:DropDownList>
<asp:CascadingDropDown ID="ddlModel_CascadingDropDown" runat="server" TargetControlID="ddlModel" Category="Model"
ParentControlID="ddlMake" LoadingText="لطفا صبر کنید..." PromptText="انتخاب مدل خودرو"
ServiceMethod="BindModel" ServicePath="~/Car.asmx">
</asp:CascadingDropDown>

<asp:Label ID="Label2" runat="server" Text="مدل خودرو"></asp:Label>


</form>

mehfa27
چهارشنبه 07 خرداد 1393, 16:30 عصر
برنامه هیچ خطایی نمیده.فقط توی دراپ دانها هیچ چیزی نشان داده نمیشه.تو حالت design view هم unbound هست.
من کد این برنامه رو با C#‎ هم نوشتم ولی توی این حالت وقتی از دراپ دان اول انتخاب میکنیم یک postback انجام میشه تا دراپ دان دوم را پر کند اما اگه از ajax control toolkit استفاده کنیم این postback اتفاق نمیفته و کاربر هم منتظر نمیمونه.میخوام سرعت سایت بالا بره چون ایتم های دراپ دانم هم زیاده.

alireza.zahani
پنج شنبه 08 خرداد 1393, 07:43 صبح
آقای zahani کدوم سایت؟

سایت دانلود پروژه (http://www.usprojeh.com/)