توضیحات و دانلود

DropDownList کشور استان شهر با استفاده از AJAX در ASP.Net
0 0
DropDownList کشور استان شهر با استفاده از AJAX در ASP.Net

 با سلام در این مقاله ، نحوه ساخت DropDownList وابسته کشو ،استان و شهر از پایگاه داده را توضیح می دهیم.
بانک اطلاعات
برای این مثال یک پایگاه داده SQL Server به نام Cascading_ddl ایجاد کرده ایم که اسکریپت آن به همراه کد نمونه پیوست شده است.
در این بانک اطلاعاتی جدولهایی با عنوان کشورها ، استانها و شهرها به ترتیب با طرح موجود در زیر ایجاد کرده ایم.

جدول کشورها

جدول استان

جدول شهرها

ایجاد بانک اطلاعاتی
شما باید اسکریپتی به نام CreateCascadingDatabase.sql را که در پوشه SQL نمونه پیوست ذخیره شده است ، اجرا کنید که این پایگاه داده کامل را با داده ایجاد می کند.
کد HTML
در زیر کد HTML است که شامل سه DropDownList هر یک از کشورها ، استان ها و شهر ها را کنترل می کند. برای جلوگیری از PostBack کامل و استفاده از AJAX ، هر سه DropDownList را درون کنترل UpdatePanel قرار داده ایم.

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <table>
            <tr>
                <td>Country:</td>
                <td><asp:DropDownList ID="ddlCountries" runat="server" AutoPostBack = "true" OnSelectedIndexChanged = "Country_Changed">
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td>State:</td>
                <td>
                    <asp:DropDownList ID="ddlStates" runat="server" AutoPostBack = "true" OnSelectedIndexChanged = "State_Changed">
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td>City:</td>
                <td>
                    <asp:DropDownList ID="ddlCities" runat="server">
                    </asp:DropDownList>
                </td>
            </tr>
        </table>
    </ContentTemplate>
</asp:UpdatePanel>

عملکرد عمومی برای اتصال و جمع آوری DropDownList
در زیر عملکرد عمومی وجود دارد که برای جمع آوری و اتصال DropDownList با داده های SQL Server Database استفاده می شود.
C #

private void BindDropDownList(DropDownList ddl, string query, string text, string value, string defaultText)
{
    string conString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
    SqlCommand cmd = new SqlCommand(query);
    using (SqlConnection con = new SqlConnection(conString))
    {
        using (SqlDataAdapter sda = new SqlDataAdapter())
        {
            cmd.Connection = con;
            con.Open();
            ddl.DataSource = cmd.ExecuteReader();
            ddl.DataTextField = text;
            ddl.DataValueField = value;
            ddl.DataBind();
            con.Close();
        }
    }
    ddl.Items.Insert(0, new ListItem(defaultText, "0"));
}

VB.Net

Private Sub BindDropDownList(ddl As DropDownList, query As String, text As String, value As String, defaultText As String)
    Dim conString As String = ConfigurationManager.ConnectionStrings("ConString").ConnectionString
    Dim cmd As New SqlCommand(query)
    Using con As New SqlConnection(conString)
        Using sda As New SqlDataAdapter()
            cmd.Connection = con
            con.Open()
            ddl.DataSource = cmd.ExecuteReader()
            ddl.DataTextField = text
            ddl.DataValueField = value
            ddl.DataBind()
            con.Close()
        End Using
    End Using
    ddl.Items.Insert(0, New ListItem(defaultText, "0"))
End Sub

پر کردن DropDownList کشور
 DropDownList کشور همانطور که در شکل زیر نشان داده شده است در رویداد Page_Load صفحه استفاده می شود
C #

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string query = "select CountryId, CountryName from Countries";
        BindDropDownList(ddlCountries, query, "CountryName", "CountryId", "Select Country");
        ddlStates.Enabled = false;
        ddlCities.Enabled = false;
        ddlStates.Items.Insert(0, new ListItem("Select State", "0"));
        ddlCities.Items.Insert(0, new ListItem("Select City", "0"));
    }
}

VB.Net

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Dim query As String = "select CountryId, CountryName from Countries"
        BindDropDownList(ddlCountries, query, "CountryName", "CountryId", "Select Country")
        ddlStates.Enabled = False
        ddlCities.Enabled = False
        ddlStates.Items.Insert(0, New ListItem("Select State", "0"))
        ddlCities.Items.Insert(0, New ListItem("Select City", "0"))
    End If
End Sub

پر کردن DropDownList استان
DropDownList استان در رویداد OnSelectedIndexChanged از DropDownList کشور مطابق شکل زیر پر شده است
C #

protected void Country_Changed(object sender, EventArgs e)
{
    ddlStates.Enabled = false;
    ddlCities.Enabled = false;
    ddlStates.Items.Clear();
    ddlCities.Items.Clear();
    ddlStates.Items.Insert(0, new ListItem("Select State", "0"));
    ddlCities.Items.Insert(0, new ListItem("Select City", "0"));
    int countryId = int.Parse(ddlCountries.SelectedItem.Value);
    if (countryId > 0)
    {
        string query = string.Format("select StateId, StateName from States where CountryId = {0}", countryId);
        BindDropDownList(ddlStates, query, "StateName", "StateId", "Select State");
        ddlStates.Enabled = true;
    }
}

VB.Net

Protected Sub Country_Changed(sender As Object, e As EventArgs)
    ddlStates.Enabled = False
    ddlCities.Enabled = False
    ddlStates.Items.Clear()
    ddlCities.Items.Clear()
    ddlStates.Items.Insert(0, New ListItem("Select State", "0"))
    ddlCities.Items.Insert(0, New ListItem("Select City", "0"))
    Dim countryId As Integer = Integer.Parse(ddlCountries.SelectedItem.Value)
    If countryId > 0 Then
        Dim query As String = String.Format("select StateId, StateName from States where CountryId = {0}", countryId)
        BindDropDownList(ddlStates, query, "StateName", "StateId", "Select State")
        ddlStates.Enabled = True
    End If
End Sub

پر کردن DropDownList شهر
DropDownList شهرهمانطور که در زیر نشان داده شده است روی رویداد OnSelectedIndexChanged از DropDownList استان پر شده است.
C #

protected void State_Changed(object sender, EventArgs e)
{
    ddlCities.Enabled = false;
    ddlCities.Items.Clear();
    ddlCities.Items.Insert(0, new ListItem("Select City", "0"));
    int stateId = int.Parse(ddlStates.SelectedItem.Value);
    if (stateId > 0)
    {
        string query = string.Format("select CityId, CityName from Cities where StateId = {0}", stateId);
        BindDropDownList(ddlCities, query, "CityName", "CityId", "Select City");
        ddlCities.Enabled = true;
    }
}

VB.Net

Protected Sub State_Changed(sender As Object, e As EventArgs)
    ddlCities.Enabled = False
    ddlCities.Items.Clear()
    ddlCities.Items.Insert(0, New ListItem("Select City", "0"))
    Dim stateId As Integer = Integer.Parse(ddlStates.SelectedItem.Value)
    If stateId > 0 Then
        Dim query As String = String.Format("select CityId, CityName from Cities where StateId = {0}", stateId)
        BindDropDownList(ddlCities, query, "CityName", "CityId", "Select City")
        ddlCities.Enabled = True
    End If
End Sub

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :